git で競合を解決する必要がありますが、初心者として、何が最も効果的な方法かわかりません。
これは私の状況です:
すべての変更をコミットしてmaster
プッシュする必要があります。
$ git プル:
エラー: 'foo.cpp' へのローカルの変更は、マージによって上書きされます。中止しています。マージする前に、変更をコミットするか、隠しておいてください。
競合するファイルがいくつかあります。もちろん、私はウェブを検索しました:
残念ながら、どちらのソリューションもうまく機能しません。stash を使用して (diff を取得してクリーンにする)、手動で解決することもできますが、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
競合が報告されます。
mergetool
Q1)インタラクティブな競合解決またはマージにどのように使用できますか?
Q2) SourceTree を使用して競合を解決することは可能ですか? 試してみましたが、直感的でもありません。
ありがとうございました!