無法合併的時候?
衝突的產生
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. 衝突發生了。