如何查找添加给定文件的提交?

问题描述 投票:0回答:4

假设我有一个不久前提交的文件

foo.js
。我想 只需找到首次添加该文件的提交即可。

阅读答案和我自己的修改后,这对我有用

git log --follow --diff-filter=A --find-renames=40% foo.js
git commit git-commit git-log
4个回答
458
投票

这是更简单的“纯 Git”方式,无需管道:

git log --diff-filter=A -- foo.js

检查文档。您可以对“已删除”、“已修改”等执行相同的操作。

https://git-scm.com/docs/git-log#Documentation/git-log.txt---diff-filterACDMRTUXB82308203

我为此有一个方便的别名,因为我总是忘记它:

git config --global alias.whatadded "log --diff-filter=A"

这使得事情变得简单:

git whatadded -- foo.js

下面的一行代码将递归地搜索

$PWD
的子目录中的
foo.js
,而无需提供文件的绝对或相对路径,文件也不需要与
$PWD

位于同一目录中
git log --diff-filter=A -- **foo.js

28
投票
git log --follow --find-renames=40% --oneline -- foo.js | tail -n 1

8
投票

以下内容可能不是您感兴趣的,但我认为它将来会对您有所帮助,并且是 Git 中调试生态系统的一部分:

您可以使用

git-blame
显示文件的每一行的修订版本和作者最后修改的内容,尤其是文件注释。访问 https://git-scm.com/book/en/v2/Git-Tools-Debugging-with-Git

例如,

git blame -L 174,190  xx.py

-L 选项是将注释的输出限制在第 174 行到第 190 行,因此您将看到文件 xx.py 从第 174 行到第 190 行的作者和提交哈希等


2
投票

如果可以选择以非编程方式执行此操作,则速度非常快。打开 gitk GUI。

gitk file

然后只需滚动到第一个提交

© www.soinside.com 2019 - 2024. All rights reserved.