Git - 需要帮助理解为什么提交在历史中但不显示文件

时间:2018-05-21 19:50:26

标签: git

我感兴趣的是一个特定的提交哈希:

git show 868cd84a941 --name-status

此命令显示提交已修改文件:

M       src/web/thirdParty/jquery/jquery.js

当我运行命令时:

git branch --contains 868cd84a941

返回的分支名称之一是'2018_06'

但是,当我检出2018_06分支时,我通过命令查看文件历史记录:

git log --graph --oneline --decorate -- src/web/thirdParty/jquery/jquery.js

它只显示一行历史记录:

* a7ef0eab25f Add 'src/web/thirdParty/' from commit '5a733590a44a84cafb17afa8d8f7379a5ee2cd0e'

这不是我感兴趣的提交。如果提交或合并到此分支中,为什么我在此文件的历史记录中看不到此提交?

查看历史记录,在某些时候,似乎提交了声明已将包含原始提交的分支合并到主分支的提交。但是,似乎这个合并提交是在没有实际合并来自分支的任何更改的情况下进行的。

1 个答案:

答案 0 :(得分:0)

由于我无法找出可接受的答案,我试图在Git的源代码存储库中寻找(显然是自动的)提交消息:

git grep 'Add .* from commit'

我发现了这个:

contrib/subtree/git-subtree.sh:         commit_message="Add '$dir/' from commit '$latest_new'"
contrib/subtree/t/t7900-subtree.sh:             check_equal "$(last_commit_message)" "Add '\''sub dir/'\'' from commit '\''$(git rev-parse FETCH_HEAD)'\''"

您的存储库似乎被划分为多个子树,这些子树可能具有单独的历史记录。