我们有一个主分支 develop
, 用来 merge
各个程序员的 pull request
.
现在简单描述下我们的开发流程
1.接到一个任务之后,pull
最新的 develop
代码. git pull
.
2.基于最新的 develop 分支代码 ,新建一个分支 git checkout -b new_branch_name
3.代码写完后提交并 push 到远程
git add .
git commit -m"message......"
git push origin new_branch_name
4.在 github 网站上新建一个 pull request , new_branch_name---->develop
5.lead review 代码并合并.
但是一个分支有时候需要2天才能处理完,我们通常会在第二天的早上 pull 最新的 develop 代码,并且切换到 new_branch_name
分支, rebase develop 的代码git rebase origin/develop
这样如果代码有冲突就在个人的本地解决并提交, new_branch_name 分支带有最新的 develop 代码.
问题来了:
由于在我 rebase develop 分支之前, develop 已经合并了很多其他人提交的pull request, 等我 rebase 之后,发现develop 代码有问题,于是回滚了若干个 commit .......
如果现在合并 我的 new_branch_name 分支,那么又会把回滚的费代码给 merge 到 develop. 也就是说我必须要处理好这个 再提交pr .
一般我的处理方式是 :
新建一个分支, cherry-pick 我的 new_branch_name 分支的 commit ....
这种方式平时也没啥问题,只是这次 我这个 分支 的 commit 是在太多了点 也太乱了点(因为经常做 rebase 操作) .
想问下有没有好点的方法
不要说 不该 rebase . 现在是已经 rebase 了 ,如何处理回滚的问题.....
rebase develop 分支将多次提交的commit合并成一个commit,并且生成一个新的 new_branch_name 分支。
这个new_branch_name分支代码相当于这次版本的封版代码,所以开发流程是:如果rebase后,还有代码修改commit则必须在new_branch_name分支上修改,修改通过后发个QA测试,测试通过,将这些修改commit merge到develop 分支。