2015-03-31 119 views
1

当我运行git log --name-status我可以看到我的文件在我的提交中被修改。 但是,当我运行git log myfilename指定在上一个命令中出现的文件名之一时,某些提交没有列出。Git提交出现与git日志但不与git日志<filepath>

这是为什么?

+1

而且'git log --follow - myfilename'? – Jubobs 2015-03-31 10:29:32

+3

和' - 完全历史'? – 2015-03-31 11:39:05

+1

当我使用' - followlow'或' - full-history'时,提交就会出现。 – Ben 2015-03-31 12:20:31

回答

1

当我使用--follow--full-history时出现提交。

这意味着您的文件已被:

  • 更名为参与合并的分支(--full-history--follow
  • ,因为默认模式梅干有些偏科,如果最终的结果是相同的(即合并相同内容的分支机构)

见博客文章“Git – Full History”从Scott Smith

一系列的变化可以互相取消,这意味着默认情况下历史记录是“简化的”。
如果没有使用“–full-history”开关,那些彼此抵消的更改似乎永远不会存在。

Ben印证了第二种情况in the comments

发生了什么事是第一次,我在我的分支上的修改合并回主线。
之后,另一个分支由另一个开发人员复制相同的更改,然后合并回主线

+0

有问题的文件尚未重命名,但它已涉及合并分支。 – Ben 2015-03-31 14:28:00

+0

@Ben ok,这就是为什么我添加了博客文章的链接,这说明了这个问题。 – VonC 2015-03-31 14:29:45

+0

好吧,发生了什么事是我首先将我在分支上做出的更改合并回主线。之后,另一个开发人员在另一个分支上复制相同的更改,然后合并回主线。 – Ben 2015-03-31 14:53:15