我们平时开发的时候都是从主仓库 fork 到自己仓库,然后将 fork 的仓库 clone 到本地进行开发,本地创建对应的开发分支A,开发完成以后再将A分支提交到 fork 的仓库,之后提交 pr 到主仓库。 但是一般而言,我们都是整个团队在开发,等开发完了,需要合并到远程分支的时候,远程分支已经有很多次提交(commit)了,自己的分支已经落后主分支很多版本,切换回主分支的时候就不在最新commit上了。
解决思路
远程仓库主分支为 qbox/develop , fork 仓库主分支orgin/develop
假设当前开发的分支名为 KODO-11324 ,
- 在 fork 仓库主分支拉取最新的代码
- 根据主分支(develop)代码在本地创建新的临时分支,命名为tmp
- 将临时分支(tmp)合并到开发分支 KODO-11324
- 解决合并后的冲突
- 提交开发分支(KODO-11324)并push到fork仓库
- 开发分支(KODO-11324)提交 pr 到主仓库
实现
在 fork 仓库主分支拉取最新的代码
切换到本地主分支
|
|
拉取最新代码
|
|
根据主分支在本地创建新的临时分支
|
|
将临时分支合并到开发分支
切换到开发分支 KODO-11324
|
|
临时分支合并到开发分支
|
|
解决冲突
手动解决冲突
开发分支 push 到 fork 仓库
|
|
提交 pr
点击 https://github.com/jimyag/project-name/pull/new/KODO-11324 即可提交 pr