2017-03-15 63 views
1

我對本地文件進行了一些修改,但尚未提交。我想要做的這個最新版本與來自不同分支的一個git的差異,但是當我做:獲取本地更改的文件和其他分支之間的git差異

git diff master otherbranch myfile.txt 

它看起來像它顯示在當前分支的myfile.txt的承諾最後的區別和當前版本,而不是與其他分支和當前版本的區別。

回答

3

你很近!

git diff master otherbranch myfile.txt 

這 「意味着」 同樣的事情git diff master otherbranch -- myfile.txt,正如我們在the git diff documentation看到,有一般形式:

git diff <commit> <commit> -- <path> 

這是查看之間的變化兩個任意<提交>。

什麼就是上面說:

這種形式是查看你的工作樹相對你到一個名爲<更改提交>。您可以使用HEAD將其與最新的提交進行比較,或使用分支名稱與不同分支的提示進行比較。

和仰視只有一行在手冊中進一步您將看到:

git的差異 [--options] <提交> [ - ] [<路徑> ... ]

具體做法是:

git diff otherbranch -- myfile.txt 

使用--的原因是您需要區分名爲的文件,例如--name-only-w等。這是一個好主意,養成一直使用它的習慣,而不是它對git diff真的很重要,但有一天如果你不小心創建了一個名爲-rf,和運行git rm -- -rf的文件,你會意識到這是一個非常好的習慣。 :-)

這是一個好主意,閱讀和學習手冊頁,因爲有一些人git diff形成很多 -name沒有提交,1名提交,或2個提交;使用或省略--staged - 其中的不同之處不同。我花了大約一年時間才知道要使用哪一個,而不必仔細檢查手冊。


真的,這有時會發生,特別是如果一個同事決定惡作劇你和運行: > ./-rf。處理它的另一種方式是使用./-rf,就像惡作劇一樣,因爲./-rf不以-開頭。但這只是一個好習慣。

相關問題