マージできない場合は? 競合の発生
Backlog編かGitHub編を選んでください。
Backlog編
ソースコードが競合を起こし、自動でマージできない場合があります。例えば、次の図のようなケースで競合は発生します。
初めて競合状態に直面すると、どのように対応していいかが分からなくなります。競合状態を作るまでの前準備が少しかかりますが、ここで体験しておきましょう。
1. 初期状態の作成
それでは実際に、競合が発生する状態を再現したいと思います。
sort.jsの一方のブランチを等価演算子(==)、もう一方を厳密等価演算子(===)を使用し競合を起こします。まず、先ほどの手順と同様にテスト用のリポジトリを作成し、以下のソースコードをmasterブランチにプッシュします。
sort.jsvar number = [19, 3, 81, 1, 24, 21];
console.log(number);
2. ブランチを作成
2つのブランチを作成します。
$ git checkout -b add-sort-func2
$ git checkout -b add-sort-func1
3. add-sort-func1 ブランチでソースコードを編集してプッシュ
「add-sort-func1」ブランチ上で、ソースコードを編集します。
sort.jsvar sortNumber = function (number) {
number.sort(function (a, b) {
if (a === b) {
return 0;
}
return a < b ? -1 : 1;
});
};
var number = [19, 3, 81, 1, 24, 21];
sortNumber(number);
console.log(number);
修正が完了したらコミットしてプッシュします。
$ git add sort.js
$ git commit -m "配列をソートする処理を追加しました"
$ git push origin add-sort-func1
4. add-sort-func1 ブランチのプルリクエストを作成しマージ
プルリクエストを作成し、マージします。
5. add-sort-func2 ブランチでソースコードを編集してプッシュ
ブランチを「add-sort-func2」に切り替えます。
$ git checkout add-sort-func2
ソースコードを編集します。
sort.jsvar sortNumber = function (number) {
number.sort(function (a, b) {
if (a == b) {
return 0;
}
return a < b ? -1 : 1;
});
};
var number = [19, 3, 81, 1, 24, 21];
sortNumber(number);
console.log(number);
修正が完了したらコミットしてプッシュします。
$ git add sort.js
$ git commit -m "配列をソートする処理を追加しました"
$ git push origin add-sort-func2