解決衝突
若要繼續推送我們剛做的修改到遠端儲存庫,我們就必須手動解決衝突。為此,讓我們執行拉取,以從遠端儲存庫獲取最新的變更集。
執行以下 git pull 指令:
$ git pull origin main
Username:
Password:
remote: Counting objects: 5, done.
remote: Compressing objects: 100% (2/2), done.
remote: Total 3 (delta 0), reused 0 (delta 0)
Unpacking objects: 100% (3/3), done.
From https://example.backlog.com/git/BLGGIT/tutorial.git
* branch main -> FETCH_HEAD
Auto-merging sample.txt
CONFLICT (content): Merge conflict in sample.txt
Automatic merge failed; fix conflicts and then commit the result.
將出現一則訊息,警告我們存在合併衝突。
當您開啟sample.txt
時,您會看到 Git 新增的標記表明該檔案章節存在衝突,如下所示。
Anyone can learn Git with this tutorial and Backlog
add: Register a change in an index
<<<<<<< HEAD
commit: Save the status of an index
=======
pull: Obtain the content of the remote repository
>>>>>>> 17c860612953c0f9d88f313c8dfbf7d858e02e91
我們將透過接受兩個更改,並移除標記來解決衝突。
Anyone can learn Git with this tutorial and Backlog
add: Register a change in an index
commit: Save the status of an index
pull: Obtain the content of the remote repository
一旦我們解決了衝突,並且檔案的內容發生變化後,我們將提交變更。
$ git add sample.txt
$ git commit -m "merge"
[main d845b81] merge
我們現在更新了來自遠端儲存庫的最新更改。
我們可以使用 git log 指令來驗證儲存庫歷史紀錄的準確性。--graph
選項將以圖形格式顯示分支歷史紀錄,--online
選項將嘗試壓縮輸出訊息。
$ git log --graph --oneline
* d845b81 merge
|\
| * 4c01823 append description of the pull command
* | 95f15c9 append description of the commit command
|/
* 3da09c1 append description of the add command
* ac56e47 first commit
這表示這兩個歷史紀錄已成功與新的合併提交合併了。 我們現在可以安全地將此更改推送到遠端儲存庫,而不會發生任何合併衝突。