195 git commit git-log git-commit
假设我有foo.js一段时间前提交过的文件.我想简单地找到首次添加此文件的提交.
在阅读答案和我自己的修修补补后,这对我有用
git log --follow --diff-filter=A --find-renames=40% foo.js
Run Code Online (Sandbox Code Playgroud)
ste*_*erd 296
这里有更简单,"纯粹的git"方法,无需管道:
git log --diff-filter=A -- foo.js
Run Code Online (Sandbox Code Playgroud)
检查文档,你可以对Deleted,Modified等做同样的事情.
https://git-scm.com/docs/git-log#git-log---diff-filterACDMRTUXB82308203
我有一个方便的别名,因为我总是忘记它:
git config --global alias.whatadded 'log --diff-filter=A'
Run Code Online (Sandbox Code Playgroud)
这使它变得如此简单:
git whatadded -- foo.js
Run Code Online (Sandbox Code Playgroud)
Set*_*son 16
git log --oneline -- foo.js | tail -n 1
Run Code Online (Sandbox Code Playgroud)
以下内容可能不是您感兴趣的,但我认为它将来会对您有所帮助,并且是 Git 调试生态系统的一部分:
您可以用来git-blame显示文件的每一行的修订版本和作者最后修改的内容,尤其是文件注释。访问https://git-scm.com/book/en/v2/Git-Tools-Debugging-with-Git
例如,
git blame -L 174,190 xx.py
Run Code Online (Sandbox Code Playgroud)
-L 选项将注释的输出限制为第 174 行到第 190 行,因此您将看到文件 xx.py 从第 174 行到第 190 行的作者和提交哈希等