Git 本機與遠端操作詳解

本文詳細解釋了 Git 本機與遠端操作的常見指令及其應用場景,涵蓋 git fetchgit pullgit 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 的最佳實踐

  1. 設定審核條件

    • 可以設定 6 人團隊中至少 5 人接受後才能合併。
    • 當條件滿足時,合併按鈕會亮起,任何人都可以按下合併。
  2. PR 的重要性

    • 即使功能不是你開發的,參與 PR 的 Code Review 也能幫助你了解功能的運作方式。
    • 在面試中,可以提到你參與過的 Code Review,展示對系統的理解。
  3. 避免 PR 堆積

    • PR 長時間未處理會導致難以合併,建議每週安排一次 PR 日,集中討論和處理 PR。

保持 Git 圖表清晰的建議

  1. 優先使用 git rebase

    • 在執行 git fetch 後,盡量使用 rebase 而非 merge,避免提交歷史過於複雜。
  2. 避免強制推送到共享分支

    • git push origin main --force 應謹慎使用,尤其是在共享分支上。
    • 如果需要整理自己的分支,可以在個人分支上使用 --force

常見操作範例

建立新分支並推送

git branch issues/705
git push origin issues/705
  • 效果:建立一個名為 issues/705 的分支,並推送到遠端。

發起 PR 並進行 Code Review

  1. 在遠端倉庫中發起 PR,請求其他成員進行代碼審查。
  2. 通過審查後,合併到主分支。

面試中的 Git 技巧

在面試中,展示你對 Git 的理解和實踐經驗非常重要。例如:

  • 參與 Code Review
    • 即使某功能不是你開發的,可以提到在 PR 中進行過代碼審查,並了解該功能的實現細節。
  • 版本控制的實踐
    • 提到如何使用 rebase 保持提交歷史清晰,或如何處理衝突。

這篇文章介紹了 Git 本機與遠端操作的常見場景和實踐,適合用於團隊協作和個人開發的日常工作中。