前言
當 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」 贊助作者鼓勵繼續創作,讀者們「只需幫忙按讚,完全不用出錢」哦! |