TurtoiseGit でファイルが競合した時の対処

TurtoiseGit としましたが、大筋の考え方は TurtoiseSVN も同じです。

多人数で開発している場合、どうしても同じファイルを編集することはあります。
ある日、何気なしにコミット&プッシュすると、エラーが出てしまいました。(というストーリー)

英語のメッセージに従って、一旦プル(リポジトリから新しい情報を取り込む)します。
すると…。

出ました、競合エラー。
(左下のチェックを入れるとこのメッセージは出なくなりますが、問題解決にはならないので私は出すようにしています)
ファイルには競合を示す黄色い!マークが。この状態を解決しましょう。

競合したファイルの例

リポジトリ

using System;

namespace userApplication
{
    public class testClass
    {
        void Awake()
        {
            funcA();
        }

        void Update()
        {

        }

        void funcA()
        {
            Debug.Log("functionA");
        }
    }
}

クローン

using System;

namespace userApplication
{
    public class testClass
    {
        void Awake()
        {
            funcB();
        }

        void Update()
        {

        }

        void funcB()
        {
            Debug.Log("functionA");
        }
    }
}

解決方法

右クリック > TurtoiseGit > 競合の編集

左上がリポジトリ、右上がクローンです。
この2つをうまく抜き出して、下の「マージ済み」のコードを完成させます。
(普通にコピペしていきます)

修正が終わったら、マージ済みの方にある?????の行は消すようにしてください。
これを行わないと、完成されたと見なされません。

修正の仕方は状況次第ですが、今回は funcA -> funcB と順番通りにメソッドをコールすればいい、というシナリオです。
完成したら左上の「保存」ボタンを押します。

解決済みを選択

黄色の!から、いつもの赤の!に変化したのを確認してから、もう一度コミットを選びます。

ビビらせるようなメッセージに、思わず修正を咎められたような気分になりますが、問題はないのでOK。

競合について、メッセージに自動的に記載されています。
コミット&プッシュ

自動生成されたメッセージをそのままにしていいですか? と聞かれます。
開発プロジェクトの統一ルールで、メッセージがこのままではまずい場合「中止」してメッセージを編集、問題なければ「無視」を押して構いません。

今度は無事コミット&プッシュに成功しました。

返信を残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA