【发布时间】:2013-04-03 21:02:17
【问题描述】:
我需要解决git中的冲突,但是作为一个新手,不知道什么是最有效的方法。
这是我的情况:
我在master,需要提交并推送我的所有更改。
$ git pull:
错误:您对“foo.cpp”的本地更改将被合并覆盖。 中止。请在合并之前提交您的更改或存储它们。
有几个冲突的文件。当然,我在网上搜了一下:
How to resolve merge conflicts in Git?
不幸的是,这两种解决方案都无法正常工作。我可能会使用 stash(获取差异并使其干净)并进行手动解析,但我想使用 git mergetool 或 SourceTree。
这是我尝试过的:
$ git config merge.conflictstyle diff3
$ git mergetool
merge tool candidates: tortoisemerge emerge vimdiff
No files need merging
$ git mergetool -t vimdiff
No files need merging
$ git mergetool -t vimdiff foo
foo.cpp: file does not need merging
$ git diff foo.cpp
diff --git a/foo.cpp b/foo.cpp
index xxxxxx yyyyy
--- a/foo.cpp
+++ b/foo.cpp
@@ .....
..... <omitted>
$
我不确定出了什么问题。 git mergetool 无法正常工作。它说不需要合并。但是,它显示了差异并且git pull 报告了冲突。
Q1) 如何使用mergetool 进行交互式冲突解决或合并?
Q2) 是否可以使用 SourceTree 来解决冲突?我试过了,但也不直观。
谢谢!
【问题讨论】:
-
你需要的
config命令是git config merge.tool diff3
标签: git conflict git-merge atlassian-sourcetree