【Git #11】git cherry-pick | 你的那招好像很厲害,可以借我學一下嗎?

➣ Reading Time: 5 minutes

前言

當 branch 一多,我們自然的就會產生非常多不同的 branch,
有時候雖然還沒有 merge,但別人寫了一個感覺很好用的 function,
這時我們要怎麼在「自己開發到一半的情況」,「又直接去拿別人的東西來用呢」?

自己的理解方式:跟 merge 很像,但 cherry-pick 目的不在 merge,而是臨時借東西來用。

用法

我們可以透過以下指令,去任何一個 commit/branch 拿東西

git cherry-pick <commit id>  # (小技巧:不用打完,只要沒有重複,至少打四位都能智慧配對)

實驗與示範

這裡我們來實驗一下

我建立了一個文件 test.txt,並依序 commit 了三次,commit message 對應內容。

commit 1
commit 2
commit 3
  • commit message 如下:

假設今天換我在另外一個 test_branch 開發,
我寫下了

commit 1
commit 4
  • 此時是這樣

但我覺得 commit 2 很好用,想借來用一下,
這時我們就可以 git cherry-pick

  • 如果照我的例子而言,就是:

註:任何的 git log 都是越靠近現在越下面
自己的記法:「太久以前的 git 就算顯示會被卷上去,我們基本上也不太會在意,因為我們幾乎只看最近的。」

  • 借一下 commit 2 來用
git cherry-pick 8ab9  # (小技巧:不用打完,只要沒有重複,至少打四位都能智慧配對)

到這邊已經達到我們想要的效果囉!!!我們拿到了想要的東西!!!

此時可能會 confilct 的原因也很好理解,
你寫的 commit 4 跟 commit 2 都要搶第二行,
git 也不知道要怎麼幫你組合順序,請你自己組合。

如果是借 function 來用,這時你應該已經拿到了!可以放到想放的地方!
而且正常來說應該順序就會影響邏輯。

組合後就可以 commit 新的組合版囉!

reference

⭐Git 相關文章整理⭐:
1.【Git】1 – 簡單開始學 git,認識 git 與基本觀念、心態建立,初學者學習 git 碰壁的原因 與 建議學習 git 的方式
2.【Git】git 初學者向 – 最簡單直白的理解 git 基本介紹 與 基本使用 (內有範例程式碼) 總整理 大全
3.【Git】git ignore 設定方法筆記,在 git add 時 固定不要特定檔案 git add remove
⭐【喜歡我的文章嗎? 歡迎幫我按讚~ 讓基金會請創作者喝一杯咖啡!
如果喜歡我的文章,請幫我在下方【按五下Like】 (Google, Facebook 免註冊),會由 「LikeCoin」 贊助作者鼓勵繼續創作,讀者們「只需幫忙按讚,完全不用出錢」哦!

likecoin-steps
Howard Weng
Howard Weng

我是 Howard Weng,很多人叫我嗡嗡。這個網站放了我的各種筆記。希望這些筆記也能順便幫助到有需要的人們!如果文章有幫助到你的話,歡迎幫我點讚哦!

文章: 728

★留個言吧!內容有誤或想要補充也歡迎與我討論!