假设我有一个Git仓库,看起来像这样:
foo/
.git/
A/
... big tree here
B/
... big tree here
有没有办法让git log
只显示一个特定目录的日志信息?例如,我想查看哪些提交只涉及foo/A
中的文件。
假设我有一个Git仓库,看起来像这样:
foo/
.git/
A/
... big tree here
B/
... big tree here
有没有办法让git log
只显示一个特定目录的日志信息?例如,我想查看哪些提交只涉及foo/A
中的文件。
从目录foo/
中,使用
git log -- A
你需要使用“--”来将<path>..
与<since>..<until>
refspec分开。# Show changes for src/nvfs
$ git log --oneline -- src/nvfs
d6f6b3b Changes for Mac OS X
803fcc3 Initial Commit
# Show all changes (one additional commit besides in src/nvfs).
$ git log --oneline
d6f6b3b Changes for Mac OS X
96cbb79 gitignore
803fcc3 Initial Commit
输入
git log .
从特定目录获取,还提供该目录中的提交记录。
git log
:
git log A B
日志将只显示在A
和B
中进行的提交。我通常加上--stat
,使事情看起来更美观,这有助于快速审核提交。如果要跟踪文件夹的变化,包括移动操作,可以使用以下方法:
git rev-list --all --pretty=oneline -- "*/foo/subfoo/*"
git log -p DIR
。例如:显示特定版本范围内的所有详细更改。git log -p 8a5fb..HEAD -- A B
commit 62ad8c5d
Author: Scott Tiger
Date: Mon Nov 27 14:25:29 2017 +0100
My comment
...
@@ -216,6 +216,10 @@ public class MyClass {
+ Added
- Deleted
git log -- A
可能显示最小的命令,即使没有阅读任何解释文本也可以立即理解,例如git log -- folder/
。 - Jason Doucette