[git]競合、競合の解決



conflict


2つ以上の異なるブランチでは、同じファイルの内容を修正してmergeを行うと衝動的になります.

競合の解決方法

  • 手動解決
  • 変速定周波数利用
  • 0、衝突状況

    <<<<<<< HEAD
    Oh.. Here!! From master branch!
    =======
    Oh.. Here!! From feature branch!
    >>>>>>> another-branch
    メッセージを実行して出動すると、ファイルにこれらのタグが表示されます.
    HEADは現在のブランチの内容を表し、もう一方のブランチはHEADではなく他のブランチを表す.

    1.手動で解決


    このファイルに直接アクセスし、衝突部分のいずれかまたは両方を選択して変更して保存します.
    その後git statusをチェックし、以下の手順で操作します.
    git add 충돌파일
    git merge --contine
    これでno-fast-forward mergeが完成します.

    2.Vscodeで解決


    2-1. mergetoolの設定

  • git優先パラメータファイルを開く
  • git config --global -e
  • merge、mergetool設定
  • [merge]
    	tool = vscode
    [mergetool "vscode"]
    	cmd = code --wait $MERGED

    2-2. 結合

  • 合併
  • git merge 브랜치
  • 衝突通知
  • Auto-merging main.txt
    CONFLICT (content): Merge conflict in main.txt
    Automatic merge failed; fix conflicts and then commit the result.
  • 連結工具の運転
  • git mergetool
  • vsccodeでの衝突解決

  • 3つのオプションのいずれかをクリックして保存します.
  • 現在変更:現在HEADの内容
  • 変革の導入:統合された他のブランチの内容
  • Compare Changeでは、2つのファイルをそれぞれ開いて比較します.
    ・」mergeの副産物・」

    vscodeでmergeを行うと、ファイルが生成された파일명.확장자.origファイルが表示されます.
    このファイルは、競合が発生したときの内容を含むファイルです.
    しかし、このようなファイルを生成するのは面倒なので、以下のコマンドを使用して設定を閉じます.
    mergetoolバックアップファイルの保存オプションを閉じる
    git config --global mergetool.keepBackup false
    またはgit configファイルを開き、次のオプションを追加します.
    [merge]
    	tool = vscode
    [mergetool "vscode"]
    	cmd = code --wait $MERGED
    	trustExitCode = true
    	keepBackup = false # 백업파일 생성하지 않도록 옵션 추가.
    副産物の削除.origコマンドを使用して、生成した副産物ファイルを削除できます.
    (もちろん、GUIからも簡単に削除できます.).orig命令語は追跡されていないファイルを削除する命令語である.
    簡単に使うgit clean削除.
    オプション)-f:強制削除、-d:ディレクトリの削除
  • merge完了
  • git merge --continue
    上のコマンドでmergeを完了します.