我對本地文件進行了一些修改,但尚未提交。我想要做的這個最新版本與來自不同分支的一個git的差異,但是當我做:獲取本地更改的文件和其他分支之間的git差異
git diff master otherbranch myfile.txt
它看起來像它顯示在當前分支的myfile.txt的承諾最後的區別和當前版本,而不是與其他分支和當前版本的區別。
我對本地文件進行了一些修改,但尚未提交。我想要做的這個最新版本與來自不同分支的一個git的差異,但是當我做:獲取本地更改的文件和其他分支之間的git差異
git diff master otherbranch myfile.txt
它看起來像它顯示在當前分支的myfile.txt的承諾最後的區別和當前版本,而不是與其他分支和當前版本的區別。
你很近!
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
不以-
開頭。但這只是一個好習慣。