git で競合が発生する理由は、ファイルをマージするときに、同じファイルの同じ場所が変更され、コンテンツが異なることです。つまり、送信された 2 つのブランチの同じファイルの同じ場所です。操作がマージされたため、競合が発生しました。競合を引き起こす一般的な操作には、2 つのブランチをマージすることや、リモート ウェアハウス コードをローカルにプルすることが含まれます。
この記事の動作環境: Windows 10 システム、Git バージョン 2.30.0、Dell G3 コンピューター。
1. 一般的な競合操作:
2 つのブランチをマージする
2にプルします。競合の原因:
ファイルをマージするときに、同じファイルの同じ場所が変更され、内容が異なる場合、競合が発生します。3.解決手順:
1. git status 競合ファイルを表示します 2.vim src/main/java/a.txt (a.txt が競合ファイルであると仮定すると、ここで必要になります)ファイルのフルパスにする)、競合部分を手動で変更します。3.git add src/main/java/a.txt 競合が解決されたことを Git に伝えます4.git commit - m '競合の解決' (競合をコメントとして解決、カスタマイズ可能) 送信された 2 つのブランチの同じ場所にある同じファイルの異なる操作がマージされます。実践的なデモンストレーション
##<2> 2 つのブランチを作成します
<3>2 つのブランチを変更して送信します
aブランチ ブランチ:
b支店ブランチ:
(3) ブランチのマージ時に競合が発生する
Merge aBranch ブランチ (Branch ブランチを現在の master ブランチにマージ):
注:
git merge: デフォルトでは、Git は「高速ファーワード マージ」を実行し、Master ブランチを Develop ブランチに直接ポイントします。 --no-ff パラメーターを使用した後、通常のマージが実行され、新しいノードが Master ブランチに生成されます。バージョンの進化を明確にするために、この方法を採用することをお勧めします。
bBranch ブランチを再度マージすると、競合が発生します:
##mergeTest.txt ファイルの内容:
(4) 競合の解決
現在のブランチ (マスター) で競合ファイルを見つけ、競合コードを直接変更し、追加してコミットします。注: 簡単な方法です。vim を使用して変更し、cat を使用して競合ファイルを表示します。 (git によって自動的に生成される競合コードの区切り文字を削除するように注意してください)
(5) 競合解決を完了します注: 送信またはマージすると git が生成されますノード。各ノードはコードのバージョンに対応します。
推奨学習:「Git チュートリアル 」
以上がgit が競合を引き起こすのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。