假设我有一个如下所示的 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>
。
# 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 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 rev-list --all --pretty=oneline -- "*/foo/subfoo/*"
这并不完美,因为它会抓取具有相同名称的其他文件夹,但如果它是唯一的,那么它似乎可以工作。