花美男为中国互联网事业而奋斗

git cherry-pick 把提交到A分支的部分commit 再提交到B分支上

来源:未知 阅读(0)次 评论(0)

 

应用环境:

有一个 主分支 master (这个分支只是用来合并其他通过测试的分支,及上线打版本),另一个 分支 dev (开发提交的分支)。

当你通过一番挣扎终于搞定一个bug,顺手提交到 git 服务器,心里一阵暗爽. 这时发现你当前所在的分支是 master !!!

这个分支不是开发者用来提交代码的,可惜现在剁手也晚了.

git cherry-pick.jpg

怎么办?


于是你想到,合并分支.

合并分支通常会带来各种各样的冲突,而且当前 dev 分支还在开发中,没有进过测试,所以就算合并也是 dev 合并 master 分支.但是车根本太大.

这时最好的解决方案就是用 cherry-pick


使用方法:

1.先切换到刚才你误操作的分支下 master 

$ git checkout master

2.然后找到你的提交信息

$ git log
commit d3df8f31f6abe6f0a3f962723767ba66af0eae71
Author: Tom.lei Date:   Sat Oct 29 14:35:23 2016 +0800

    [Web] bug Fixed.

我们从提交日志中找到 commitID  

d3df8f31f6abe6f0a3f962723767ba66af0eae71

3. 切换到 dev 分支下

$ git checkout dev

4. 把master 下的 bug fixed! 提交重新提交的 dev 分支下

$ git cherry-pick 'd3df8f31f6abe6f0a3f962723767ba66af0eae71'
Finished one cherry-pick.
# On branch dev
# Your branch is ahead of 'origin/dev' by 1 commits.

上面的提示信息告诉我们这个 commit 已经重新提交到了 dev 分支下.

注意,这个操作也行会报错,这时需要你手动去合并冲突,然后重新提交.




来源:http://yijiebuyi.com/blog/0e65f4a59a1cfa05c5b30ccb6c2f413d.html

标签:gitgitlab
上一篇:Git工作流 下一篇:git 本地仓库和远程仓库及本地分支和远程分支简介

相关推荐