如何显示git repo子目录的git日志历史记录?


Answers:


242

从目录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

1
顺便说一句,在做“ git log – A B”之前,您应该留在“ foo”文件夹中
Sergey Leyko

22
对于略读的人来说,这显示了A 中的变化B,而不仅仅是AOP要求的
aidan 18'Jan

1
@GoZoner,有没有办法找到更改特定文件夹名称的所有提交?该文件夹可能搬来搬去,所以我宁愿没有追捕如何以及在哪里文件夹移动..
alpha_989

3
^^更新为A仅显示更改(应OP要求)。
GoZoner

如果目录在当前目录中被删除怎么办?
亚伦弗兰克

34

如果您想以图形方式查看它,可以使用

gitk -- foo/A

在此处输入图片说明


26

您可以使用git log相应文件夹的路径名:

git log A B

该日志将仅显示在A和中进行的提交B。我通常会把--stat东西弄得更漂亮,这有助于快速提交评论。


26

输入

git log .

从特定目录中,它还提供该目录中的提交。


4
不适用于我..登陆特定目录并给出git log后。从根本上给了我所有的承诺。
AKS

1
为我工作。使用git bash
棘手的

2

为了跟踪对文件夹移动位置的更改,我开始使用:

git rev-list --all --pretty=oneline -- "*/foo/subfoo/*"

这不是完美的选择,因为它将捕获具有相同名称的其他文件夹,但是如果它是唯一的,那么它似乎可以工作。


0

其他答案仅显示更改的文件。

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

1
我不知道这个答案与问题有什么关系
Florian Leitgeb
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.