當Git中存在合併衝突時,類似以下的垃圾被插入到衝突文件中。三個問題:合併衝突解決
- 你如何閱讀這些註釋?
- 解決這些合併衝突時有什麼策略可用?
- 是否有一個Mac的GUI工具,知道如何讀取這些文件,並排顯示這兩個版本,以便更容易地解決問題?
注:如果是相關的,我使用GitHub的Mac的GUI客戶端。
當Git中存在合併衝突時,類似以下的垃圾被插入到衝突文件中。三個問題:合併衝突解決
注:如果是相關的,我使用GitHub的Mac的GUI客戶端。
現在有一個比試圖讀取Git插入到文件中的亂碼標記更好的解決方案。 Kaleidoscope 2,Black Pixel的差異工具的第二個版本,現在也是合併工具。這不是免費的,但它運作得非常好。
安裝萬花筒2後,與Git集成非常簡單。打開萬花筒,然後從菜單欄中選擇萬花筒>集成...
然後你就會看到這個窗口。只需從左側導航欄中選擇Git,然後安裝ksdiff
命令行工具,然後製作Kaleidoscope Git的默認差異和合並工具。
最後,一旦你在Git的合併衝突,只需進入命令行和執行git mergetool
。現在衝突很容易理解。請享用。
我想知道如何標記通過萬花筒解決 – 2016-08-05 04:05:40
@FrankFang當你解決所有衝突時,你只需要關閉窗口。你會被問及合併是否可以。 – 2017-02-16 23:15:33
一切<<<<<<
和======
之間來自HEAD
修訂,這是啓動合併操作之前提交狀態(如果樹是髒git merge
會抱怨,所以它應該是等同於你的工作目錄)。
======
和>>>>>>
之間的部分來自正在合併的版本。 >>>>>>
之後的文本是引入衝突更改的提交的註釋。
存在衝突標記意味着該部分文件的基本版本與「新」版本不同。基本版本(最後一個共同的祖先)未顯示。
如果你想要一個更舒適的合併和可用的GUI,我建議你看看kdiff3。
謝謝,西蒙。有沒有一些GUI應用程序可以打開這些文件,並顯示HEAD和合並版本? – 2012-02-09 08:12:54
按照上面@Brian建議的鏈接。 – 2012-02-09 08:19:25
您能指出我該鏈接中哪些信息有用嗎?我的git手冊是無法訪問的。 – 2012-02-09 08:39:38
<<<< HEAD #Where the conflict starts
#Previous Revision
========== # The point where things look iffy
#Things that changed
>>>>> New Commit # Point where the conflict ends
蘋果的Xcode自帶FileMerge它可以在命令行上opendiff
訪問。
git mergetool -t opendiff
您可以配置(圖形)合併工具,並使用該工具進行解決衝突。
也有看看git mergetool
命令 - 如果你有安裝了預定義的工具之一或已經配置了一些其他的工具,這將打開工具http://schacon.github.com/git/git-mergetool.html
分辨率如果您有興趣的GUI工具,因爲GUI工具將幫助您輕鬆製作分辨率,所以您無需擔心符號的真正含義。只要理解標記爲=====
和>>>>>
的部分是衝突部分。
你能給我一個可以讀取這些文件並解釋如何打開它們的Mac GUI應用程序的例子嗎?我已經嘗試在不同的差異和合並工具中打開這些文件,並且它們只是作爲單個文本文件打開,而不是被解釋爲兩個文件。 (這是衝突標記的全部目的。) – 2012-02-09 08:38:00
可能重複[我該如何解決合併Git中的衝突?(http://stackoverflow.com/questions/161813/how-do-i-fix-merge-conflicts-in-git ) - #1鏈接,如果谷歌「混帳合併衝突」 – 2012-02-09 08:05:28