製造拉取請求的衝突
有些合併衝突可能導致源代碼無法自動合併。在這種情況下,您需要手動修復問題。
為了演示如何合併衝突,我們首先需要在多個分支上創建和編輯代碼,並嘗試合併它們。
首先,我們需要重現發生衝突的情況。我們可以對 sort.js
的一個分支使用相等運算符==
,對另一個分支使用嚴格相等運算符===
,從而使衝突發生。
創建一個新的儲存庫,並將以下源代碼推送到主分支。
// sort.js
var number = [19, 3, 81, 1, 24, 21];
console.log(number);
接下來,建立兩個分支。
$ git checkout -b add-sort-func2
$ git checkout -b add-sort-func1
然後在add-sort-func1
分支上編輯源代碼。
// sort.js
var 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 "<commit_message>"
$ git push origin add-sort-func1
`A process of sorting an array has been added`
接下來,為add-sort-func1
分支發出拉取請求並合併。
![Click "Add pull request"](/static/66ef4a55113101bebf6300222d0ebac5/5a190/01.png)
![Click "Merge"](/static/c88dd7a4e3a5b541b537f2bdcc17df78/5a190/02.png)
然後將分支切換到add-sort-func2
。
$ git checkout add-sort-func2
Edit the source code.
// sort.js
var 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 "<commit_message>"
$ git push origin add-sort-func2
“A process of sorting an array has been added”
接下來,為add-sort-func2
分支建立拉取請求。
![Click "Add pull request"](/static/6724b5fbbea7bd70a68b5fe45055490b/5a190/03.png)
這就是我們的衝突發生的地方。
![Conflict occurs](/static/22ac4802c739d086532169693b2d90c6/5a190/04.png)
![Conflict occurs](/static/480619a851c643f23e1d520f240bdf8e/5a190/05.png)