git - 为什么 git log --diff-filter=A 不显示存储库中文件的最早版本?
问题描述
我有兴趣将 SCHED_REALTME 算法的第一个版本作为源代码树的一部分(在 3.14 版中引入 Linux)wiki。我检查了存储库并从master执行了以下操作:
git log --diff-filter=A -- [path to the deadline.c file]
它向我展示了这个提交:
commit aab03e05e8f7e26f51dee792beddcb5cca9215a5
Author: Dario Faggioli <raistlin@linux.it>
Date: Thu Nov 28 11:14:43 2013 +0100
但是在维基百科页面(上面的链接)上,他们说该算法首先在此提交 a0fa1dd3cdbccec9597fe53b6177a9aa6e20f2f8 中合并到 Linux 树中,我确实能够签出此提交并查看该文件。
这个问题。我传递给的选项不是git log
应该向我展示来自维基百科的提交吗?
解决方案
维基百科页面说:
最后一个版本被合并到主线 Linux 内核中(提交号 a0fa1dd3cdbccec9597fe53b6177a9aa6e20f2f8[30]),从那时起就成为它的常规部分。
所以他们没有说这是该代码的第一次介绍。这与对两个提交的分析相对应:
commit aab03e05e8f7e26f51dee792beddcb5cca9215a5
Author: Dario Faggioli <raistlin@linux.it>
Date: Thu Nov 28 11:14:43 2013 +0100
commit a0fa1dd3cdbccec9597fe53b6177a9aa6e20f2f8
Merge: 9326657abe1a eaad45132c56
Author: Linus Torvalds <torvalds@linux-foundation.org>
Date: Mon Jan 20 10:42:08 2014 -
soaab03e05e8f7e26f51dee792beddcb5cca9215a5
显然比a0fa1dd3cdbccec9597fe53b6177a9aa6e20f2f8
. 还
git merge-base aab03e05e8f7e26f51dee792beddcb5cca9215a5 a0fa1dd3cdbccec9597fe53b6177a9aa6e20f2f8
告诉我他们的共同祖先是什么,答案是:
aab03e05e8f7e26f51dee792beddcb5cca9215a5
所以这似乎是引入deadline.c
文件的真正祖先提交。
结论
git log --diff-filter=A
做你期望它做的事情:)
推荐阅读
- ansible - Ansible 忽略剧本中的条件
- python - 如何获取本地计算机当前使用的代码页?
- javascript - 模板标签内的 Template.QuerySelector 不起作用
- python - 我需要拆分排序列表,并从中创建一个新列表
- java - 如何为 Sonar Bitbucket Cloud 插件禁用 SonarScanner 发布作业操作
- dart - 尽管提供了类型,但 Dart 无法访问泛型类型函数参数的属性
- api - 如何使用 API 休息运行查询?
- python - 如何在超链接中使用变量名?
- javascript - 非常简单的 After Effects 表达式返回“表达式中使用的未定义值”错误
- arrays - 每次循环在 Ansible 中发生时,是否有办法将值存储在数组中?