不是很確定文,只是隨手紀錄一下.... ,
可以忽略此篇文章,若有寫錯煩請糾正我一下,感謝!
cherry-pick 的定義是:Apply the changes introduced by some existing commits
或者說...只合併指定的 commit
可以選擇某一個branch(分支)的一個或好幾個commit(s)操作
或者說...針對已經存在的commit 進行再次提交
講白話一點就是比方說我想要merge某些特定的commits從一個branch到另外一的branch,會這樣做是因為我希望只有某些特定修改的項目要merge,而剩下的就留在原來的地方,可能是我不需要上那個功能等等。
假設有兩個branch(staging, development)
在沒有做任何修改是這樣 :
A-B staging
\
C-D-E-F-G development
然後我新增了兩次 commit
分別是 H 跟 I 到 development 環境,就會變成:
A-B staging
\
C-D-E-F-G-H-I development
接下來可能因為專案的需要我必須只上H,跟I到staging的branch
其他的部分留在development,這時可以用cherry-pick
cherry是櫻桃的意思
這時候的櫻桃就是指 H,跟 I 了 ,把他pick起來送到staging這個branch
首先先切換到staging:
$ git checkout staging
然後cherry-pick H,跟I :
$ git cherry-pick H
$ git cherry-pick I
如果當初推的順序是先H再I,cherry-pick也要照這個順序
cherry-pick的行為有點類似merge
然後就可以push了
如果是使用cherry-pick 後不用 commit
因為對cherry -pick來說就是一次新的commit
但若使用cherry-pick -n(一次合併好幾個) 後要重新 commit
希望我有機會實作到這個部分再來寫更多的筆記。
參考:
Git 初學筆記- 指令操作教學| Tsung's Blog
Cherry-Picking specific commits from another branch
沒有留言:
張貼留言
若你看的文章,時間太久遠的問題就別問了,因為我應該也忘了... XD