マージ紛争?ここで解決方法です.


あなたが欲しかったすべては、2つの枝を合併することでした.代わりに以下のようにします.
Auto-merging my_func.py
CONFLICT (content): Merge conflict in my_func.py
Automatic merge failed; fix conflicts and then commit the result.
マージ紛争!😱
それは実際よりも深刻である.
どのようにマージの競合を解決するために学ぶに沿って従ってください.

ステップ1:パニックしないでください!


Gitがコードの2つのスニペットをマージする方法がわからないときにマージコンフリクトが発生します
そして、あなたの入力がそれが何もダムをしないことを確認することを望みます.
マージ競合状態は一時的な状態です.あなたは合併の最中です.
だから、このプロセス中にいつでも、あなたがわからないと戻って行きたい場合は
マージ前の状態には、git merge --abort and
誰も損をしない.
そのセキュリティで武装して、先に行き、いくつかの競合を解決しましょう.

ステップ2:何が起こったのビューを取得します。


あなたが呼ばれる枝を作成したとしましょうfeatureX そして、
ファイル名my_func.py . あなたが完了したときは、マスターから
マスターで起こった最新のあなたの支店を更新してください.
その結果、マージ紛争が生じた.あなたが最初に状況のビューを取得する必要が進んでください.
REPOのステータスをチェックすることで、以下のようにします.
$ git status
On branch featureX
You have unmerged paths.
  (fix conflicts and run "git commit")
  (use "git merge --abort" to abort the merge)

Unmerged paths:
  (use "git add <file>..." to mark resolution)

        both modified:   my_func.py

no changes added to commit (use "git add" and/or "git commit -a")
上記のステータスメッセージはmy_func.py
マスターとあなたの枝に.たぶん、他の誰かがそのファイルと
それはちょうど彼らがあなたと同じラインを変更して、コミットしたことが起こる
前にマスターする.

ステップ3:いくつかの競合を解決します。


これがファイルに何をしたかを見る時間.お気に入りのテキストエディタでそのファイルを開きます.
現在、Visual Studioのコードのように、最新のテキストエディタがある場合は、次のように表示されます.

あるいは、以下のような気がしないかもしれません.
<<<<<<< HEAD
def my_func(arg1, arg2):
    return arg1 + arg2
=======
def my_func(a, b):
    c = a + b
    return c
>>>>>>> master
あなたがそれをどのように見ても、ここでは意味します:
  • 間のすべて<<<<<<< HEAD and ======= (ブランチがどこにあるか)ブランチの変更です.
  • 間のすべて======= and >>>>>>> master マスターの変更.
  • あなたがしなければならないすべてはあなたが望んでいない行を削除し、ファイルを保存することです.
    多分、あなたはあなたの変化がマスターにあるものよりよいと思います.その場合、
    マスターとインジケータラインから来る行を削除します<<<<<<< HEAD , ======= , and >>>>>>> master . ( Visual Studioのコードでは、現在の変更を受け入れるときにクリックします.最後にファイルは次のようになります.
    def my_func(arg1, arg2):
        return arg1 + arg2
    
    "Modified Modified "(すなわち競合する)状態にある全てのファイルに対してこれを行います.

    ステップ4 :マージで続行します。


    すべてのファイルを修正しました.
    $ git add my_func.py
    
    今、あなたがステータスを見るならば、あなたは衝突が解決されるのを見ます
    しかし、まだマージの過程にあります.
    $ git status
    On branch featureX
    All conflicts fixed but you are still merging.
      (use "git commit" to conclude merge)
    
    基本的にGitはあなたの許可を継続する必要があります.あなたはそれを継続することができます
    コミット
    $ git commit
    
    デフォルトのGit Commitメッセージを受け入れるか、自分自身を提供することもできます.
    ログを見ると、マスターがあなたのブランチにマージされたことがわかります.
    $ git lol
    *   85d57d1 (HEAD -> featureX) Merge branch 'master' into featureX
    |\  
    | * c47eef2 (master) refactor my_func again
    | * 4685dca Refactor my_func.
    * | 1efdaf1 Change argument names in my_func
    |/  
    * ac36ba7 Add info to file.
    * d3a02a4 First commit
    
    git lol は私が作るために作った別名ですgit log より多くのビジュアルを出力します.読むhere .

    完了!


    今、世界に出ていくつかの紛争を解決!💪