無法合併的時候?

衝突的產生

GitHub篇

原始碼發生衝突時,有時候無法自動合併。例如,像下圖這樣的情況就會發生衝突。

第一次面對衝突狀態時,可能會不知道該如何處理。雖然製造衝突狀態的前置準備需要一些時間,但讓我們在這裡實際體驗一下吧。

1. 建立初始狀態

那麼接下來,讓我們實際重現衝突發生的狀態。

在sort.js中,一個分支使用等於運算子(==),另一個使用嚴格等於運算子(===)來造成衝突。首先,與之前的步驟相同,建立測試用的數據庫,並將以下原始碼Push到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 分支上編輯原始碼並Push

在「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);

修正完成後進行提交和Push。

$ git add sort.js
$ git commit -m "新增了陣列排序的處理"
$ git push origin add-sort-func1

4. 建立 add-sort-func1 分支的Pull Request並合併

建立Pull Request並進行合併。

5. 在 add-sort-func2 分支上編輯原始碼並Push

將分支切換到「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);

修正完成後進行提交和Push。

$ git add sort.js
$ git commit -m "新增了陣列排序的處理"
$ git push origin add-sort-func2

6. 建立 add-sort-func2 分支的Pull Request

從「Pull requests」選單點擊「New pull request」按鈕來建立Pull Request。

7. 衝突發生了。