git rebase for cherry-pick
一個個 cherry-pick 很麻煩,也不支援大量 cherry-pick,
可靠 rebase 和暫時的 branch 做某種程度的大量 cherry-pick.
> git checkout stable # 希望 cherry-pick 者
> git checkout -b tmp # 工作 branch
> git merge master # 全部吃下來
> git rebase -i stable # 從 stable 處開始 rebase
# ...把不要的 commit 直接刪掉
# 清理 conflict
# 得到 stable + 部份 master commit
> git checkout stable # 回到希望 cherry-pick 者
> git merge tmp # 吃掉剛剛的部份 master commit
> git branch -d tmp # 刪除工作 branch
以上 tmp 可用 feature 的名字,比較清楚。
這個動作可以擴展到多人同時工作,就把 tmp push 上 github.
大概可以這樣分:
在 master 工作的人就任意工作。
release manager 在特殊的 branch 上把 feature 分開來。
確認沒問題後,最後 merge 進 stable.
可以用 --squash, 這樣對於 revert 會比較方便。
我在猜 liftweb 可能就是這樣做的?
因為有時候會看到大量的 branch 操作 @@
0 retries:
Post a Comment
Note: Only a member of this blog may post a comment.