ホームページ >ウェブフロントエンド >CSSチュートリアル >紛争の合併:彼らは何であり、どのように対処するか
この記事では、「Advanced Git」シリーズを継続しています。 TwitterでTowerをフォローするか、将来の記事の最新情報についてはニュースレターを購読してください。
競合のマージ:GITユーザー、特に協力しているユーザーにとって一般的なフラストレーション。しかし、彼らは見た目よりも困難ではないことがよくあります。この記事では、彼らの原因、性質、解決を説明しています。
さまざまなソースからの変更を現在のブランチに統合すると、競合が発生します。これは、ブランチのマージに限定されません。リベース、チェリーピッキング、 git pull
、または隠し再適用でさえ、すべて競合を引き起こす可能性があります。すべての統合が紛争につながるわけではありませんが、矛盾した変更が存在すると紛争が発生します。
Gitの合併腕前は重要な強みです。ほとんどの統合を自動的に処理します。ただし、競合の変更(たとえば、同じコードラインが2つのコミットまたはあるブランチで変更され、別のブランチで削除されたファイルが異なる方法で変更された場合、曖昧さを解決するために人間の介入が必要です。
GITは明らかに競合をマージします。障害のあるマージまたはレベーゼは、端末ですぐに報告されます。
<code>$ git merge develop CONFLICT (content): Merge conflict in index.html Automatic merge failed; fix conflicts and then commit the result.</code>
このメッセージを見逃したとしても、 git status
競合を強調します。タワーのようなGit GUIは、競合を見落とさないように視覚的な手がかりを提供します。安心して、Gitはマージの競合を逃すことを困難にします。
マージ競合を無視することは選択肢ではありません。対処する必要があります。 2つの選択肢があります。紛争を解決するか、それを引き起こしたアクションを元に戻します。
しばしば、元に戻すことは、 --abort
パラメーター(例えば、 git merge --abort
、 git rebase --abort
)を使用して簡単です。これにより、マージ/リベースが逆転し、紛争前状態が復元されます。これは、ファイルの解決を開始しても機能します。いつでも中止して再起動できます。
競合するindex.html
ファイルを調べましょう。
gitは、 での競合するセクションをマークします。このマーカーの後のコンテンツは、現在のブランチ(ヘッド)からのものです。 <code>=======
競合する変化を分離し、その後、他のブランチからの変更(例えば、 develop
)を分離し、 でマークされます。
あなたのタスクは、テキストエディター、IDE、GIT GUI、またはマージツールを使用してファイルを編集して、競合を解決することです。
解像度の方法 - テキストエディター、IDE、GUI、またはマージツール - は重要ではありません。最終ファイルは、目的の状態を反映する必要があります。単純な競合には、変化の破棄が含まれる場合があります。より複雑な競合では、どの変更を維持するか、それらを組み合わせる方法を決定するためにコラボレーションが必要になる場合があります。
手動編集は可能ですが、専用のツールはしばしばプロセスを合理化します。 GIT GUIは視覚的な競合解決補助補助具を提供します。マージツールは、高度なDIFF表示と比較機能(並べ、並べ替えのビューなど)を提供します。 git config
を使用して優先ツールを構成し、 git mergetool
で呼び出します。
競合を解決し、変更をステージングした後( git add<filename></filename>
)、通常どおり変更をコミットします。
マージ競合は管理可能です。原因を理解することで、紛争を取り消すか解決することができます。間違いでさえ可逆的です。紛争前のコミットに戻して、もう一度やり直してください。
高度なGitをより深く掘り下げるには、分岐、インタラクティブなリベース、リフェログ、サブモジュールなどに関するビデオを使用して、無料の「高度なGitキット」を探索してください。
以上が紛争の合併:彼らは何であり、どのように対処するかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。