如何将最后一次提交从一个分支复制到主分支

时间:2017-03-15 18:25:30

标签: git

我有下一个计划:

 master --> dev -->  final --> prod
         ____________|^ ^
        |             | |____________________________
        |             |_______                       |
        |                     |                      |
   next version --> dev --> bug fixed --> dev --> bug fixed --> .....

从这个方案中可以看出,我们已经完成并将主分支部署到生产中。然后我们开始了项目的新版本并做了另一个分支。在开发过程中,我们发现了一些错误,并且必须为两个分支修复它。

以前我在我的编辑器中通过主动窗口手动完成,我的算法是下一个:

(current branch "new version")
git add .
git commit -m "fixed bug"
git push
git checkout master
(put fixes manually)
git add .
git commit -m "fixed bug"
git push

但是最后一个修复是将js作为html文件触及多个。

从互联网上的一些研究中我发现了两个选项:

1. git merge - 据我所知,它将在两个分支之间完全合并

2. git rebase - 我认为这正是我正在寻找的,但我不确定这正是我所需要的。

所有人都可以帮助我解决疑惑吗?

1 个答案:

答案 0 :(得分:2)

您可以通过cherry-pick new-version 的最后一次提交带到 master

修复new-version分支中的错误。

$ git checkout new-version
$ git add .
$ git commit -m "Fixed bug"
$ git push 

$ git log                     # copy the 'commit-hash' of last commit ("Fixed bug")

现在转到master分支和cherry-pick提交。

$ git checkout master
$ git cherry-pick <commit-hash>
$ git push