# 六角學院 Git 團隊訓練任務 ## 任務三:多分支管理與 git reset 還原 來源: - [Git 團隊訓練任務](https://hackmd.io/8uEPk1GeTBCl8lUQfD5b5Q) - [Git 任務三](https://hackmd.io/GNp0ec65RZ64n6PGaeCrpg) --- ### 任務流程 - [ ] 1-1:A 成員新增一個新的 Repo,增加 `index.html`、`all.css`,並在 `index.html` 加上一個 h1 標題,並在 `all.css` 將 h1 設計文字為藍色,**進行 git push 動作**。 提醒:要加入 README、gitignore,並將對方加入協作。 - [ ] 1-2:A 成員開 `dev` 分支,**將 dev 分支進行 git push 動作**。 ::: spoiler {state="open"} 提示 ``` git branch dev git push origin dev ``` 註:不一定要切換到 dev 分支也可以將其推上去。 ::: - [ ] 1-3:B 成員 clone 下來,並故意在 main 分支,將 all.css 的標題文字顏色變成綠色,並 commit 一個版本。 - [ ] 1-4:B 成員使用 reset 語法還原後,***切換 `dev` 分支*** commit 一個版本,**將 dev 分支進行 git push 動作**。 ::: spoiler {state="open"} 提示 Rest 回前一版: ``` git reset HEAD^ 或 git reset HEAD~ ``` Push: ``` git push 或 git push origin dev ``` 註:這邊之所以可以直接使用 `git push`,是因為 B 成員 clone 數據庫時已存在 dev,git 會自動追蹤遠端 dev 分支(main、dev 都會)。 ::: - [ ] 1-5:A 成員進行 git pull 抓 `dev` 最新版本下來。 ***提醒:要記得切換到 dev,不然就等著 QQ。*** ::: spoiler {state="open"} {state="open"} 提示 ``` git pull origin dev ``` - 註 1: 這邊無法直接使用 `git pull`,因為 A 成員的本地端並未追蹤遠端 dev 分支,所以必須使用指定分支的方式。 - 註 2: 使用這種指定分支的指令,一定要先切換到正確的分支再進行。 如果在 main 進行這個指令,會把 dev 的內容合併到 main。 - 註 3: 如果真的不小心做錯分支,就用 reset 將之還原,然後再切換到正確的分支做。 請使用硬還原(`--hard`),如果沒用硬還原會保留原檔案,而出現未提交變更。 若忘記用硬還原,也可以事後捨棄變更。 指令(**捨棄所有變更**):`git restore .` 或 `git checkout .` ::: - [ ] 1-6:A 成員修改 head 的 `title`,文字設為 `修改 title`,並 commit 一個版本,comment 內容為 `修改 head title`,**將 dev 分支進行 git push 動作**。 ::: spoiler {state="open"} 提示 ``` git push origin dev ``` 註:這邊無法直接使用 `git push`,因為 A 成員的本地端並未追蹤遠端 dev 分支,所以必須使用指定分支的方式。 ::: - [ ] 1-7:B 成員進行 `git pull` 抓 `dev` 最新版本下來。 **提醒:注意有在 dev 分支。** ::: spoiler {state="open"} 提示 ``` git pull 或 git pull origin dev ``` ::: - [ ] 1-8:B 成員修改 h1 的文字設為 `修改標題`,並 commit 一個版本,comment 內容為 `修改 h1 文字`,**將 dev 分支進行 git push 動作**。 - [ ] 1-9:B 成員透過 GitHub ,申請一個 main 合併 dev 進度的 PR,並指派 A 成員進行審核。 - [ ] 1-10:A 成員審核成功後,用 GitHub Pages 觀看 `main` 分支的頁面是否有出現預期網頁畫面。 ### <br>通關檢核點 - [ ] A、B 成員與 GitHub Repo 都有相同的 commit 數量 - [ ] 預期線圖有符合 ### <br>預期線圖  --- ### 補充知識 - **git pull = git fetch + git merge** - [Git-本地分支、遠端分支、遠端追蹤分支](https://ithelp.ithome.com.tw/articles/10211819) - [跟踪分支](https://git-scm.com/book/zh/v2/Git-%E5%88%86%E6%94%AF-%E8%BF%9C%E7%A8%8B%E5%88%86%E6%94%AF#:~:text=origin/serverfix%E3%80%82-,%E8%B7%9F%E8%B8%AA%E5%88%86%E6%94%AF,-%E4%BB%8E%E4%B8%80%E4%B8%AA%E8%BF%9C%E7%A8%8B) - [Pull 下載更新](https://gitbook.tw/chapters/github/pull-from-github) - [拉取](https://git-scm.com/book/zh/v2/Git-%E5%88%86%E6%94%AF-%E8%BF%9C%E7%A8%8B%E5%88%86%E6%94%AF#:~:text=git%20branch%20%2Dvv-,%E6%8B%89%E5%8F%96,-%E5%BD%93%20git%20fetch)
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up