我在特定分支中搜索某个提交ID,虽然提交不在特定分支中我得到了结果,而在git log中没有结果。
git log commit_id#finds commit
git检查#branch'a'不包含commit_id
git log#搜索没有结果的commit_id。
是一个bug还是设计?如果不是一个错误,为什么呢?
提前致谢。
答案 0 :(得分:3)
git log
是该特定分支中的提交列表,它不是错误。如果您只运行git log
而没有<sha1>
它将以相反的顺序显示该特定分支的提交。
如果要查看提交,可以使用git show <sha1>
查看特定提交,而不是特定于分支。
答案 1 :(得分:3)
您需要记住分支只是对提交的引用。如果您说git log <branch>
,则表示您实际上在说git log <commit to which this branch points>
。有了它,git转到那个提交(或者只是一个指针的分支)并从那里显示历史。
如果您致电git log <commit_id>
,则没有任何区别。 git仍然会进入该提交并从那里开始记录。
我再次重复你的理解,分支只是一个指针。它们的存在只是为了让我们的生活更轻松,而且根本不需要。 Git只对他们指向的提交感兴趣。
继续浏览refs/heads
目录中.git
文件夹中包含的内容。