我有下一个计划:
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
- 我认为这正是我正在寻找的,但我不确定这正是我所需要的。
所有人都可以帮助我解决疑惑吗?
答案 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