Skip to main content
  1. Learn
  2. Software Development
  3. Guides
  4. Git tutorial
  5. 如何使用 Git
  6. 如何在 Command Line 中使用 Git
  7. 解決衝突
GuidesSoftware DevelopmentBacklog
Git

Project and code management together.

解決衝突

若要繼續推送我們剛做的修改到遠端儲存庫,我們就必須手動解決衝突。為此,讓我們執行拉取,以從遠端儲存庫獲取最新的變更集。

執行以下 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

這表示這兩個歷史紀錄已成功與新的合併提交合併了。 我們現在可以安全地將此更改推送到遠端儲存庫,而不會發生任何合併衝突。

Subscribe to our newsletter

Learn with Nulab to bring your best ideas to life