SourceTree / Gitの競合をインタラクティブに(視覚的に)解決する方法


119

私のgitプロジェクトには(Windows)SourceTreeを使用しています。コマンドプロンプトまたはLinuxターミナルのいずれかで実行できます。

しかし、対話的に視覚的に競合を解決する良い方法があるかどうか疑問に思っています。たとえば、プルが競合を検出した場合、GUIベースの競合ツール(P4Mergeなど)をポップアップします。出来ますか?

私は常に手作業での競合解決を行っていますが、これはとてもつらいことです。

これは、例えばpullSourceTreeからのgit メッセージです。

git -c diff.mnemonicprefix=false -c core.quotepath=false pull --no-commit origin master
From W:\repo\
 * branch            master     -> FETCH_HEAD   

Updating 33c07bf..41e0249

error: Your local changes to the following files would be overwritten by merge:
    foo.cpp
    goo.cpp
    goo.hpp
Please, commit your changes or stash them before you can merge.
Aborting    

Completed with errors, see above.

回答:


135

SourceTreeから、「ツール」->「オプション」をクリックします。次に、[全般]タブで、チェックボックスをオンにして、SourceTreeがGit構成ファイルを変更できるようにします。

次に、「Diff」タブに切り替えます。下半分で、ドロップダウンを使用して、差分とマージに使用する外部プログラムを選択します。KDiff3をインストールしました。完了したら、[OK]をクリックします。

マージがある場合は、[アクション]-> [競合の解決]-> [外部マージツールの起動]を選択します。


4
私はこれを試しましたが、結局、compareがローンチされるのを見ることができません。生成される比較ファイルを確認しましたが、それだけです。私は対立を解決できません。これを標準/デフォルトの比較に変更しても、効果がないようです。
Echiban 2013年

1
@echiban 3ウェイマージを受け入れないBeyond Compareの標準ライセンスを持っている可能性があります。git mergetoolとして使用するには、プロに行く必要があります
pierdevara

6
"Launch External Merge Tool"を構成するためのすべての手順を実行した後も、まだ淡色表示されています。アクティブ化する方法はありません
pal4life

2
また、マージ競合ファイルを選択していませんでした。うまくいっ
たら

2
灰色になる前に、コミットリストの[コミットされていない変更]項目をクリックする必要がありました。
Micah Zoltu

11

私はSourceTreeとTortoiseMerge / Diffを使用しています。これは非常に簡単で便利なdiff / mergeツールです。

それも使用したい場合は、次のようにします。

  1. TortoiseMerge / Diffのスタンドアロンバージョンを入手してください(TortosieSVNのバージョン1.6.7以降(2011年7月以降)はスタンドアロンで出荷されないため、かなり古いものです)。この回答のリンクと詳細。

  2. 解凍 TortoiseIDiff.exeTortoiseMerge.exeて任意のフォルダに(c:\Program Files (x86)\Atlassian\SourceTree\extras\私の場合)。

  3. SourceTreeでを開きTools > Options > Diff > External Diff / Mergeます。TortoiseMerge両方のドロップダウンリストで選択します。

  4. ヒット OKとのあなたの場所にポイントSourceTree TortoiseIDiff.exeTortoiseMerge.exe

その後Resolve Conflicts > Launch External Merge Tool、ローカルリポジトリ内の競合する各ファイルのコンテキストメニューから選択できます。これによりTortoiseMergeが開き、すべての競合に簡単に対処できます。終了したら、TortoiseMergeを閉じるだけで(変更を保存する必要もありません。これはおそらく自動的に行われます)、数秒後、SourceTreeはそれを適切に処理します。

唯一の問題は、適切なオプションがオフになっている場合でも、バックアップコピーが自動的に作成されることです。


4

[競合の解決]-> [コンテンツメニュー]が無効になっている場合、[保留中のファイル]リストに表示されることがあります。ドロップダウンから[競合するファイル]オプションを選択する必要があります(トップ)

それが役に立てば幸い

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.