如何在git pull后解决冲突?

问题描述:

我必须在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://*.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://*.com/questions/825478/how-to-set-araxis-as-diff-merge-tool-for-msys-git – VonC 2009-09-17 04:09:18

您不需要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

如果您从项目的子目录运行合并,git将为您的整个项目运行合并。但是,mergetool只能查看(并合并)工作目录中或以下的文件。所以,如果发生这种情况,请确保您尝试从项目的*目录运行冲突解决方案。

我想你只是在你的命令行中忘记了“-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