git合并指定提交记录代码

运用场景:

       git上有3条代码线,master用于发版生产,bug用于生产bug修复,dev用于开发。假定bug是7月28日发现的,一共有5个bug。

这时我们会在bug线修复bug,预定7月30日发版生产。由于某个同事的疏忽,第5个bug在预定发版日期未修复完。另外4个bug是一定要上生产的,那我们只能合并前4次提交的记录。

      

      上面这种场景,那可以用git cherry-pick命令了,只合并前4次提交的记录。

      git cherry-pick命令格式:

      ​​​​​git cherry-pick [--edit] [-n] [-m parent-number] [-s] [-x] [--ff] [-S[<keyid>]] <commit>…​

      git cherry-pick --continue

      git cherry-pick --quit

      git cherry-pick --abort

     命令解读:

扫描二维码关注公众号,回复: 2714851 查看本文章

     <commit>…:

              需要合并的已发生的提交记录,多个用空格隔开,例如:git cherry-pick c1 c2 c3 c4;

     --edit:

             在合并前,git会要求你先填备注,就是每次提交前要填的提交备注;

     -n:

             默认情况下,cherry-pick命令执行成功后会自动提交合并的代码到本地仓库。如果使用该参数,cherry-pick执行成功后不会自动提交代码。当要合并多个提交记录的场景下,该参数特别有用处。例如:git cherry-pick -n c1 c2 c3 c4;

     -m: parent-number

            默认情况只会合并当前提交记录(例如c1)的代码,如果想要合并该次合并代码上一次或以前提交的(合并)的记录,则需要指定parent-number,例如:git cherry-pick -m c1  c2,意思就是合并c2,并且合并c2上一次提交的代码c1。这样就会将c1提交的文件也合并到当前分支;

git cherry-pick --continue

         用于在cherry-pick失败或者revert(回退)失败,处理完冲突后继续执行;

git cherry-pick --quit

        忽略当前正在执行的cherry-pick操作。在cherry-pick失败或者revert(回退)失败后,可以用来清除sequencer(序列器)的当前状态;

git cherry-pick --abort

       取消操作并且返回上一个sequencer的状态。

猜你喜欢

转载自blog.csdn.net/u013262534/article/details/81289239