2013-02-26 140 views
2

當我運行爲什麼「git log --name-only」顯示一個文件更改,但「git diff」顯示更多?

git log --name-only 

它顯示SHA1和SHA2爲連續的提交,只有一個文件是SHA2變化。

然而,當我運行

git diff sha1 sha2 

它顯示了很多文件的差異。爲什麼是這樣? sha1和sha2是我從git log --name-only獲得的連續提交id。 sha1是較早的提交。

我認爲git diff只會顯示由git log --name-only列出的文件的差異。

sha1sha2是在同一分支中的連續提交。

sha1是從B1挑選櫻桃,sha2是從B2櫻桃採摘。

我發現沒有在git log --name-only中列出的文件被修改,基本上我的B1更改被B1提交覆蓋,即使它未被列爲已被修改。

在這裏櫻桃採摘有沒有在不知不覺中發現變化的問題?

+0

參見http://stackoverflow.com/questions/5256249/git-diff-doesnt-show-enough/5257065#5257065 – VonC 2013-02-26 08:15:59

回答

1

您需要將您的通話git-log改變

git log --name-only sha1..sha2 
+0

我忘了澄清,當我運行git log --name-only時,sha1和sha2是連續的提交id。 雖然當我這樣跑時,我得到了更長的提交列表。 這似乎很奇怪,一個命令顯示它們是順序提交,另一個顯示更多的變化。 – dFL 2013-02-27 17:12:02

+0

就是這樣:沒有點,它只是顯示* all *提交可以從這兩個提交到達,直到第一次提交。 – 2013-02-27 21:06:07

+0

我不確定爲什麼當有人回覆時我沒有收到任何通知,但看起來我對git日誌的理解需要擴展。 謝謝邁克爾。 – dFL 2013-03-06 18:17:05

相關問題