Gitにマージの競合がある場合、次のようなジャンクが競合するファイルに挿入されます。 3つの質問:
注:関連する場合は、GitHubのMac GUIクライアントを使用しています。
現在、Gitがファイルに挿入する意味不明なマーカーを読み取ろうとするよりも優れたソリューションがあります。 Kaleidoscope 2 、Black Pixelのdiffツールの2番目のリリースは、マージツールでもあります。無料ではありませんが、美しく機能します。
Kaleidoscope 2をインストールすると、Gitとの統合が非常に簡単になります。 Kaleidoscopeを開き、メニューバーからKaleidoscope>Integration…を選択します。
次に、このウィンドウが表示されます。左のナビゲーションからGitを選択し、ksdiff
コマンドラインツールをインストールしてから、Kaleidoscope Gitのデフォルトのdiff and mergeツールを作成します。
最後に、Gitでマージの競合が発生したら、コマンドラインに移動してgit mergetool
。これで、競合が読みやすくなりました。楽しい。
<<<<<<
と======
の間のすべては、マージ操作を開始する前のコミット状態であるHEAD
リビジョンに由来します(ツリーが汚れている場合、git merge
は文句を言います。作業ディレクトリと同等である必要があります)。
======
と>>>>>>
の間の部分は、マージされるバージョンに由来します。 >>>>>>
の後のテキストは、競合する変更を導入したコミットのコメントです。
競合マーカーがあるということは、ファイルのこの部分の基本バージョンが両方の「新しい」バージョンと異なることを意味します。基本バージョン(最後の共通の祖先)は表示されません。
より快適にマージしてGUIを使用できるようにする場合は、kdiff3をご覧になることをお勧めします。
<<<< HEAD #Where the conflict starts
#Previous Revision
========== # The point where things look iffy
#Things that changed
>>>>> New Commit # Point where the conflict ends
MacのXcodeにはFileMergeが付属しており、opendiff
を使用してコマンドラインからアクセスできます。
git mergetool -t opendiff
(グラフィカル)マージツールを構成し、そのツールを使用して競合を解決できます。
git mergetool
コマンドもご覧ください-事前定義されたツールのいずれかがインストールされているか、他のツールを構成している場合、解決のためにツールが開きます http://schacon.github .com/git/git-mergetool.html
GUIツールに興味がある場合は、GUIツールを使用すると簡単に解決できるので、表記の意味を心配する必要はありません。 =====
および>>>>>
でマークされた部分が競合セクションであることを理解してください。
同じファイルに変更を加えた2つのブランチがあり、それらをマージしようとすると、マージの競合が発生します。競合するファイルのリストを表示するには、ターミナルで_git status
_を実行します。
ファイルの競合する行は、視覚インジケータでマークされます:_<<<<<
_-この行の後に競合が始まります。 _=====
_-HEADおよびmerging_branchからの変更を除けます。_>>>>>
_-競合する行の終わり。
_<<<<<<< HEAD
conflicted text from HEAD
=======
conflicted text from merging_branch
>>>>>>> merging_branch
_
競合するファイルを修正してマージする準備ができたら、_git add
_および_git commit
_を実行してマージコミットを生成するだけです。コミットが行われたら、_git Push
_ブランチへの変更。
参照記事: Git merge 。