git rebase--onto 合并指定commit的简单使用

使用场景

假设有prod(生产环境)、dev(测试环境)两个分支,在dev分支上有部分未开发完成或者未测试完成的功能没有同步到prod分支,然而此时prod上有bug需要修复,这种情况我们一般是不会直接在prod分支上修改的,因为有风险。

此时我们一般有两种选择:

1、单独建立一个bug分支,用来修改prod分支的bug,修改测试完成后,再合并到prod分支

2、在dev分支上修改,测试完成后把bug相关的代码合并到prod分支

第一种方法很简单,这里简单讲解一下第二种方法。

命令讲解

git rebase --onto [branch] commit版本号1(开始) commit版本号2(结束)
这个命令会把从commit版本号1到commit版本号2的所有提交全部合并到起来并存在一个临时分支中

操作步骤

#比如你在dev分支上把bug修复了,要合并到prod分支上,那么你需要在dev分支上这么操作

git checkout dev #如果你已经在dev分支上了,则可以忽略这个操作

#查看提交日志
git log

#找到这个bug相关的第一次提交记录,复制版本号,然后在找到最后一次提交记录复制版本号,最后执行
git rebase --onto prod  628d120fb120ee559be15722a590591e0a0e2242  28b3c460002bfd44e1e18566dffe6075baaf25b5

#注意此时如果出现冲突,解决掉冲突后执行git commit -am '备注',提交后再执行git rebase --continue

#此时你可以用git branch查看一下你目前所在的分支,是一个临时分支

git branch

 

#我们要新建一个bug分支,把内容转存到bug分支上边
git checkout -b bug

#然后再切换到prod分支,合并bug分支
git checkout prod 

git merge bug

猜你喜欢

转载自blog.csdn.net/Attitude_do_it/article/details/123355101
今日推荐