深入探索Git Rebase:提升你的分支合併技能 | Git

在開發中,我們常常會遇到需要合併不同分支上的特定提交(commit)的情況。這時候,Git 提供了一個強大的工具,就是 cherry-pick。這個指令可以讓你從其他分支中選擇單獨的提交,並將其應用到目前的分支中。讓我們一起來看看如何使用 cherry-pick 這個神奇的指令吧!

為什麼選擇 Git Cherry-Pick?

當你的專案有多個分支,而你只需要從某個特定分支上挑選幾個提交,而不是將整個分支合併時,cherry-pick 就派上用場了。這種情況可能是因為你只需要特定的功能或修復,而不想將其他不相關的提交一併合併進來。

使用前後對照

m1  m2   m3
 o---o---o  master
         \
          o---o---o---o  features/checkout
         a1  a2  a3   a4

假設你從 features/checkout 分支中挑選了提交 a1,並將其應用到了 master 分支上,那麼你的提交歷史將變為:

m1  m2   m3  b1(a1)
 o---o---o---o  master
         \
          o---o---o---o  features/checkout
         a1  a2  a3   a4

如何使用 Git Cherry-Pick?

讓我們來看一個簡單的例子。假設你有一個名為 features/checkout 的分支,其中包含了一個修復錯誤的提交,而你想將這個修復應用到 master 分支上。

首先,切換到目標分支:

git switch master

然後,執行 git log 來查看 features/checkout 上的提交歷史,找到你想要挑選的提交的 commit hash。

接著,執行 git cherry-pick,並指定該提交的 commit hash:

git cherry-pick <commit hash>

這樣就完成了!你已經將 features/checkout 分支上特定的提交成功應用到了 master 分支上。

注意事項

在使用 git cherry-pick 時,有幾個需要注意的地方:

  1. 可能會產生衝突 :如果目標分支和被挑選的提交之間有衝突,Git 會暫停 cherry-pick 操作,需要手動解決衝突後才能繼續。
  2. Commit Hash 的唯一性 :確保你挑選的 commit hash 是唯一的,以避免混淆。
  3. 保持分支乾淨 :使用 cherry-pick 時,目的是將特定的提交帶入目標分支,請確保僅挑選必要的提交,以保持分支的乾淨和整潔。

結語

Git Cherry-Pick 是一個強大的工具,可以幫助你從不同的分支中選擇性地應用提交,讓你的程式碼庫保持整潔,同時又能快速地導入需要的變更。希望這篇文章能夠幫助你更好地理解並使用這個功能!