2009-09-16 108 views
50

我必須在git pull之後解決一些衝突。如何在git pull後解決衝突?

$ git pull 
CONFLICT (rename/add): Renamed vignette_generator_mashed.h->vision_problem_8.h in 49423dd0d47abe6d839a783b5517bdfd200a202f. vision_problem_8.h added in HEAD 
Added as vision_problem_8.h~HEAD_1 instead 
Removed vignette_generator_cross_square.cc 
Automatic merge failed; fix conflicts and then commit the result. 

所以我GOOGLE了它一下,發現人們使用git mergetool說。但這裏是我的了:

$ git mergetool 
merge tool candidates: meld kdiff3 tkdiff xxdiff meld gvimdiff emerge opendiff emerge vimdiff 
No files need merging 
$ git mergetool opendiff 
merge tool candidates: meld kdiff3 tkdiff xxdiff meld gvimdiff emerge opendiff emerge vimdiff 
opendiff: file not found 

那麼是否意味着我必須安裝什麼東西?

如果我只想從git pull的版本覆蓋所有內容,該怎麼辦?

+0

有關信息,請參閱還http://stackoverflow.com/ questions/1064103/is-gits-auto-detection-scripted-or-it-it-within-some-git-executable(關於Git提議並搜索合併工具的方式) – VonC 2009-09-17 04:06:09

+1

您可以看到安裝/設置示例一個'mergetool'在這裏:http://stackoverflow.com/questions/825478/how-to-set-araxis-as-diff-merge-tool-for-msys-git – VonC 2009-09-17 04:09:18

回答

24

您不需要mergetool。它可以很容易手動解決。

你的衝突是你的本地提交增加了一個文件,vision_problem_8.h,遠程提交也創建了,重命名爲vignette_generator_mashed.h。如果你運行ls -l vision_problem_8.h*,你可能會看到git爲你保存的這個文件的多個版本。其中一個將是你的,另一個將是遠程版本。您可以使用編輯器或任何您喜歡的工具來解決衝突的內容。完成後,git add受影響的文件並提交完成合並。

如果您只是想使用遠程提交的版本,那麼您可以將未寫入的副本移動到位,並將它移動到git add


關於合併工具,看看git help mergetool。基本上,它會嘗試運行每個包含的可能性直到它找到一個,或者使用一個已經明確配置的可能性。

+0

謝謝!你幫我解決了這個問題。我還可以問我的mergetool有什麼問題嗎?感謝致敬! – Tim 2009-09-16 22:45:32

+1

很可能你沒有配置你的mergetool。使用git config --global mergetool。[tool] .cmd = [命令行調用]您可以使用許多diff工具,如kdiff3,tkdiff,xxdiff或其他許多工具。請參閱http://gitguru.com/2009/02/22/integrating-git-with-a-visual-merge-tool/ – Cesar 2009-09-16 23:12:53

5

如果您從項目的子目錄運行合併,git將爲您的整個項目運行合併。但是,mergetool只能查看(併合並)工作目錄中或以下的文件。所以,如果發生這種情況,請確保您嘗試從項目的頂級目錄運行衝突解決方案。

6

我想你只是在你的命令行中忘記了「-t」開關。根據git幫助頁面它代表「-t,--tool =」,所以它使你的意圖。

嘗試:

git mergetool -t gvimdiff 

當然,你可以使用的,而不是我的gvimdiff您喜歡的合併工具,MELD是偉大的太...

+0

如果有關於交換機「-t」實際內容的解釋,這將是一個更好的答案確實,並*爲什麼*它解決了這個問題。 – Stewart 2018-02-07 11:39:55

+0

@Stewart Done。感謝您的洞察! – mano2a0c40 2018-02-09 00:58:06