あなたと私が、index.html
という名前の同じファイルを共同編集しているとします。ファイルに変更を加えてコミットし、その変更を Git リモート リポジトリにプッシュしました。また、同じファイルに変更を加え、コミットを行い、同じ Git リポジトリへの変更のプッシュを開始しました。ただし、あなたが行った変更が私が行った変更と競合するため、Git は競合を検出しました。
競合を解決する方法は次のとおりです:
1. リモート リポジトリから最新の変更を取得してマージします:
$ git pull
2. 1 つ以上の競合するファイルを特定します:
$ git status
3. テキスト エディタを使用して競合ファイルを開きます:
$ vim index.html
4. 競合を解決します。競合する変更には、<<<<<<HEAD
および というマークが付けられます。どの変更を保持して破棄するかを選択し、ファイルを手動で編集して競合する変更をマージする必要があります。
これは例です:
<<<<<<< HEAD<div ><h1>Sample text 1</h1></div>=======<div ><h1>Sample text 2</h1></div>>>>>>>> feature-branch
この例では、私は Web サイトのタイトルを サンプル テキスト 1
に変更し、あなたはタイトルを サンプル テキスト 2 に変更しました。
。両方の変更がファイルに追加されました。ここで、どのヘッダーを保持するかを決定するか、ファイルを編集して変更をマージすることができます。どちらの場合も、変更の開始と終了を示すマーカーを削除し、必要なコードだけを残します。
<div ><h1>Sample text 2</h1></div>
5. すべての変更を保存し、エディタを閉じます。
6. ステージング領域にファイルを追加します:
$ git add index.html
7. 変更を送信します:
$ git commit -m "Updated h1 in index.html"
このコマンドでは、「解決されたマージ競合
変更を送信」というメッセージが使用されます。 。
8. 変更をリモート リポジトリにプッシュします:
$ git push
マージ競合は、コードに注目する良い理由になります。ファイルに変更を加えるほど、競合が発生しやすくなります。より多くのコミットを作成し、各コミットの変更を少なくする必要があります。複数の機能拡張やバグ修正を含む、モノリシックな大規模な変更を行うことは避けてください。明確な意図を持つコミットは追跡しやすいため、プロジェクト マネージャーもあなたに感謝するでしょう。初めて Git のマージ競合に遭遇したときは怖いかもしれませんが、解決方法がわかれば、解決するのは簡単であることがわかります。
以上がGit マージ競合を解決する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。