在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.所以我用谷歌搜索了一下,发现人们都在说使用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的版本覆盖所有内容,那该怎么办?
发布于 2009-09-16 22:18:55
你不需要mergetool来做这个。它可以很容易地手动解决。
您的冲突在于您的本地提交添加了一个文件vision_problem_8.h,远程提交也通过从vignette_generator_mashed.h重命名该文件创建了该文件。如果您运行ls -l vision_problem_8.h*,您可能会看到git为您保留的这个文件的多个版本。其中一个将是您的,另一个将是远程版本。您可以使用编辑器或任何您喜欢的工具来解决冲突的内容。完成后,提交受影响的文件并提交以完成合并。
如果您只想使用远程提交的版本,那么您只需将未写入的副本移动到适当的位置并对其执行git add操作即可。
关于合并工具,请看一下git help mergetool。基本上,它将尝试运行每个包含的可能性,直到找到一个,或者使用您显式配置的一个。
发布于 2012-10-09 03:20:24
我想您只是忘了在命令行中使用"-t“开关。根据git帮助页面,它代表"-t,--tool=“,所以它会生成你想要的东西。
尝试:
git mergetool -t gvimdiff当然你可以用你喜欢的合并工具来代替我的gvimdiff,meld也很棒…
发布于 2010-02-17 02:52:38
如果您从项目的子目录运行合并,git将为整个项目运行合并。但是,mergetool只能看到(和合并)工作目录下的文件。因此,如果发生这种情况,请确保您正在尝试从项目的顶级目录运行冲突解决方案。
https://stackoverflow.com/questions/1435754
复制相似问题