我需要解决 git 中的冲突,但作为一个新手,不知道什么是最有效的方法。
这是我的情况:
我参与master
其中,需要提交并推动我的所有更改。
$ git拉:
错误:您对“foo.cpp”的本地更改将被合并覆盖。中止。请在合并之前提交您的更改或存储它们。
有几个冲突的文件。当然,我在网上搜索过:
不幸的是,这两种解决方案都不能很好地工作。我可能会使用 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 来解决冲突?我试过了,但它也不直观。
谢谢!