# 任務二:單一 branch 更新與衝突 ## 關卡示範影片 {%youtube LEYlUBWqAwI %} ## 關卡提醒 1. 請沿用 `任務 1 :環境初始化` 的 GitHub Repo 即可,或要新增一個 Repo 重新做也 ok ## 你可以掌握的技術 1. **合併和更新**:在 git push 時遭遇因其他成員已經更新而引發的錯誤。使用 `git pull` 進行合併前的更新,這時可能會產生版本衝突。 2. **版本衝突識別與解決**:當兩位成員修改了同一檔案的同一部分,將會在 `git pull` 時發生版本衝突。學習如何手動解決這些衝突,並合併版本。重新加入索引並使用 git commit 完成合併。 ## 任務流程 - [x] 1-1:A 成員新增一個空的 `index.html` **,進行 git push 動作** - [x] 1-2:B 成員 Clone 下來,將 `index.html` 網頁內容加入下方折疊處後 **,進行 git push 動作** ::: spoiler HTML 內容 ``` <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> </head> <body> <h1>標題</h1> </body> </html> ``` ::: - [x] 1-3:**<span style="color:red">A 成員進行 git pull 抓最新 `index.html` 版本下來</span>** - [x] 1-4:A 成員修改 head 的 `title`,文字設為 `修改 title`,並 commit 一個版本,comment 內容為 `修改 head title`**,進行 git push 動作** - [x] 1-5:B 成員進行 `git pull` 抓最新版本下來 - [x] 1-6:B 成員修改 h1 的文字設為 `修改標題`,並 commit 一個版本,comment 內容為 `修改 h1 文字`**,進行 git push 動作** - [x] 1-7:A 成員修改 head 的 `title`,文字設為 `再次修改 title`,並 commit 一個版本,comment 內容為 `調整 head 文字` - [x] **1-8:<span style="color:red">A 成員進行 `git push`,引發更新錯誤</span>** - [x] 1-9:A 成員執行 `git pull` 合併版本後 **,進行 git push 動作** - [x] 1-10:B 成員進行 `git pull` 抓最新版本下來 - [x] 1-11:B 成員修改 h1 的文字設為 `修改標題 B`,並 commit 一個版本,comment 內容為 `修改 h1 文字,增加 B 資訊`**,進行 git push 動作** - [x] 1-12:A 成員修改 h1 的文字設為 `修改標題 A`,並 commit 一個版本,comment 內容為 `修改 h1 文字,增加 A 資訊` - [x] **1-13:<span style="color:red">A 成員執行 `git pull` 引發版本合併衝突**</span> - [ ] 1-14:A 成員只保留一個 h1,文字設為 `修改標題 AB`,重新加入索引,並執行 `git commit` 來合併版本 **,進行 git push 動作** - [ ] 1-15:B 成員也進行 git pull 抓最新版本下來 ## 通關檢核點 - [ ] A、B 成員與 GitHub Repo 都有相同的 commit 數量 - [ ] 藍字步驟,都有顯示預期結果 ``` ## 關鍵步驟講解 1-3:本地 Fast-forward (快轉) 合併成功 1-8:遠端 Fast-forward (快轉) 合併被拒絕 - 需執行 Pulling and Merging (拉取並合併) 1-13:Merge Conflict (合併衝突) ``` ## 預期線圖 ![](https://hackmd.io/_uploads/HyZwfCu-T.png) ## 提交 Git Repo 連結 * [練習用 Git Repo 連結](#)