Git 本機與遠端操作詳解
本文詳細解釋了 Git 本機與遠端操作的常見指令及其應用場景,涵蓋
git fetch
、git pull
、git push
、Pull Request (PR) 的管理,以及如何保持 Git 圖表清晰的最佳實踐。
git fetch
與分支同步
git fetch
是用來從遠端倉庫抓取最新的更新,但不會自動合併到本地分支。它的作用是讓本地倉庫知道遠端的最新狀態。
使用範例:
git fetch
- 效果:抓取遠端的更新,並建立對應的遠端分支(如
origin/master
)。 - 應用場景:當你想檢查遠端的最新變更,但不希望立即影響本地分支時使用。
本機與遠端同步的方式
要讓本機分支跟上遠端的進度,可以使用以下幾種方式:
1. git merge
將遠端的變更合併到本地分支,保留本地和遠端的提交歷史。
git pull = git fetch + git merge
- 效果:合併後會保留兩條提交記錄,適合需要完整歷史的場景。
- 缺點:可能導致 Git 圖表變得複雜。
2. git rebase
將遠端的變更應用到本地分支的基礎上,重新整理提交歷史。
git pull --rebase = git fetch + git rebase
- 效果:提交歷史會變得線性,讓 Git 圖表更清晰。
- 注意:在使用
rebase
時,需確保沒有其他人依賴你的分支,避免衝突。
3. git reset
重置本地分支到遠端分支的狀態,適合需要完全同步的情況。
git push
的進階用法
git push
是將本地分支的變更推送到遠端分支。以下是一些進階用法:
1. 推送到相同名稱的分支
git push origin main
- 效果:將本地的
main
分支推送到遠端的main
分支。
2. 推送到不同名稱的分支
git push origin main:cat
- 效果:將本地的
main
分支推送到遠端的cat
分支。
3. 刪除遠端分支
git push origin :cat
- 效果:刪除遠端的
cat
分支,相當於執行null:cat
。
Pull Request (PR) 的管理
Pull Request 是團隊協作中不可或缺的一部分,用於代碼審查和合併。
PR 的最佳實踐
-
設定審核條件:
- 可以設定 6 人團隊中至少 5 人接受後才能合併。
- 當條件滿足時,合併按鈕會亮起,任何人都可以按下合併。
-
PR 的重要性:
- 即使功能不是你開發的,參與 PR 的 Code Review 也能幫助你了解功能的運作方式。
- 在面試中,可以提到你參與過的 Code Review,展示對系統的理解。
-
避免 PR 堆積:
- PR 長時間未處理會導致難以合併,建議每週安排一次 PR 日,集中討論和處理 PR。
保持 Git 圖表清晰的建議
-
優先使用
git rebase
:- 在執行
git fetch
後,盡量使用rebase
而非merge
,避免提交歷史過於複雜。
- 在執行
-
避免強制推送到共享分支:
git push origin main --force
應謹慎使用,尤其是在共享分支上。- 如果需要整理自己的分支,可以在個人分支上使用
--force
。
常見操作範例
建立新分支並推送
git branch issues/705
git push origin issues/705
- 效果:建立一個名為
issues/705
的分支,並推送到遠端。
發起 PR 並進行 Code Review
- 在遠端倉庫中發起 PR,請求其他成員進行代碼審查。
- 通過審查後,合併到主分支。
面試中的 Git 技巧
在面試中,展示你對 Git 的理解和實踐經驗非常重要。例如:
- 參與 Code Review:
- 即使某功能不是你開發的,可以提到在 PR 中進行過代碼審查,並了解該功能的實現細節。
- 版本控制的實踐:
- 提到如何使用
rebase
保持提交歷史清晰,或如何處理衝突。
- 提到如何使用
這篇文章介紹了 Git 本機與遠端操作的常見場景和實踐,適合用於團隊協作和個人開發的日常工作中。