我有兩個本地分支,比如說 A 和 B。我運行以下命令
- git 結帳 A
- git merge -X 他們的 B - “評論”
如果我再次運行命令
git merge B --> 它會拋出訊息“已經是最新的”
如果我運行以下命令 git diff A..B --> 它回傳 4 個檔案中的差異
因此,如果我再次在分支 A 上運行合并命令,我會用分支 B 的內容“粉碎”分支 A 的內容,它回傳一切都是最新的,但是如果我在兩個分支之間運行“差異”,它會回傳差異四個檔案。
怎么了 ?
提前致謝。
此致
uj5u.com熱心網友回復:
須知:
提交中的Git 流量。
每個提交至少有一個父級,并通過其父級鏈“到達”其他提交。
分支是一次提交的名稱。
合并創建一個提交并移動當前分支的分支名稱。
短語“最新”意味著一個分支沒有達到另一個分支沒有達到的任何提交。
因此,假設我們從這種情況開始(箭頭向后指向時間,每個提交都指向其父項):
A <-- B <-- C <-- D (branch1)
↖?
<-- X <-- Y <-- Z (branch2)
現在我結帳branch1并說git merge branch2。我明白了:
A <-- B <-- C <-- D <-- M (branch1)
↖? ↙?
<-- X <-- Y <-- Z (branch2)
所以,現在,一方面,沒有一點嘗試合并branch2成branch1 一次; branch1已經達到了所有相同的提交branch2。因此,“最新”。但是 commitM和 commitZ也不完全相同。
也許你的困惑是因為你認為
git merge -X theirs B
對合并做了一些特別的事情。它沒有。這仍然是一個非常普通的合并。它唯一特別做的事情是萬一發生任何合并沖突;這theirs提供了有關如何在不尋求人類幫助的情況下解決這些沖突的提示。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/313226.html
下一篇:如何“禁用或修改稀疏規則”?
