在repo历史记录中查找git提交,该历史记录是目录重命名或移动

时间:2017-10-30 12:31:38

标签: git

我想在我的repo中找到任何涉及目录重命名的提交。

我正在查看the Pro Git book on git-scm.com

git log ...

看起来它会让我接近,但我看不到任何可以让我指定目录的东西,而不仅仅是一个文件,也不是一个动作。

1 个答案:

答案 0 :(得分:2)

git无法管理目录。它只管理文件。没有记录"目录重命名&#34 ;;你只会看到一个文件重命名为目录中的所有内容。

考虑以下示例。我从包含单个目录foo

的存储库开始
git init .
mkdir foo
touch foo/file{1,2,3}
git commit -m 'initial commit'

现在我重命名它:

git mv foo bar
git commit -m 'renamed foo -> bar'

现在git show告诉我:

$ git show
commit 0429048856377cda39eb475248e142e1bfa4323b
Author: Lars Kellogg-Stedman <lars@example.com>
Date:   Mon Oct 30 08:52:24 2017 -0400

    renamed foo -> bar

diff --git a/foo/file1 b/bar/file1
similarity index 100%
rename from foo/file1
rename to bar/file1
diff --git a/foo/file2 b/bar/file2
similarity index 100%
rename from foo/file2
rename to bar/file2
diff --git a/foo/file3 b/bar/file3
similarity index 100%
rename from foo/file3
rename to bar/file3

您可以使用git log --summary获取类似信息:

$ git log --summary
commit 0429048856377cda39eb475248e142e1bfa4323b
Author: Lars Kellogg-Stedman <lars@redhat.com>
Date:   Mon Oct 30 08:52:24 2017 -0400

    renamed foo -> bar

 rename {foo => bar}/file1 (100%)
 rename {foo => bar}/file2 (100%)
 rename {foo => bar}/file3 (100%)