被命名爲:UsrActivity.java
現在命名爲:ProfileActivity
git diff不顯示它並排顯示Android Studio的窗口視圖,而是顯示單個當前類文件。如何比較同名文件與其他分支文件保存具有不同的名稱
如何與「DevBranch」
總之,如何跨分支比較兩個獨立的文件UsrActivity.java
比較「OldBranch」的ProfileActivity.java
。謝謝
被命名爲:UsrActivity.java
現在命名爲:ProfileActivity
git diff不顯示它並排顯示Android Studio的窗口視圖,而是顯示單個當前類文件。如何比較同名文件與其他分支文件保存具有不同的名稱
如何與「DevBranch」
總之,如何跨分支比較兩個獨立的文件UsrActivity.java
比較「OldBranch」的ProfileActivity.java
。謝謝
已更新由torek提供的信息;不知道他爲什麼不把它作爲答案,因爲它比我所描述的要短得多;因此,而不是把它留在評論,那就是:
git diff
可以識別工作二個BLOB
秒,用於識別BLOB
簡寫爲<commit>:<path>
。所以
git diff master:UsrActivity.java branch:ProfileActivity.java
(根據路徑和提交標識的需要進行調整)。
原始響應
你可以給兩次提交,但隨後只有一條路徑。你可以給兩條路徑,但是你不能指定提交。如果有一種方法可以爲每個指定兩個提交和一個不同的路徑,我不知道它...因此,我認爲要做你想要的一些額外的工作。
一種方法是通過獲取每個文件的對象ID(SHA)。對於已簽出的文件,你可以說
git hash-object UsrActivity.java
要獲得具有不簽出一個對象,你可以不喜歡
git log -n1 -raw --no-abbrev <commit-or-branch-containing-file> -- ProfileActivity.java
(有可能的簡單版本那個;我今天早上還沒有太多的咖啡因)。或者當然你可以檢查一個具有第二個文件的提交(或者從這樣的提交中檢查該文件)並返回到git hash-object
命令。
一旦你爲每個文件的哈希,你剛纔說
git diff <file-1-hash> <file-2-hash>
當然,如果你最終檢查兩個文件伸到worktree,那麼你可以diff的他們直接
git diff UsrActivity.java ProfileActivity.java
使用'git rev-parse'可以將任意的commit-specifier-plus-path-name變成提交文件的blob hash:例如'git rev-parse OldBranch:ProfileActivity.java'。然後,因爲'git diff''起作用,所以'git diff ::'。 –
torek