好久没写博客了。。。
记录一下我在现在公司的一个git工作流程。
我之前使用git是不同用户在同一个git仓库下进行操作,而现在是使用fork出自己的仓库,通过提pr的方式来进行提交代码。
通过git fork操作后,自己的账号下就有了一个仓库,本地下载后又会出现一个本地仓库,这时一个有:
- 原仓库
- 远程仓库
- 本地仓库
我在这里分别给它们以代号,原仓库为(upstream),远程仓库为(origin),本地仓库为(local)

-
在本地开发时,从
upstream的master分支中切出一个分支,在这个基础上进行开发。 -
开发完成需要进行测试时,本地切换到
stg分支,从upstream的stg分支中拉取最新的代码,然后再merge本地的其他分支,这一步就将冲突全部放在本地进行解决,避免在提交pr时与原仓库存在冲突。 -
将本地的
stg分支提交到远程仓库origin的stg分支上。 -
提交pr,
merge后就可以拿upsteam的stg分支进行测试。当测试完成后,基本按照刚才的流程进行
master的提交操作。 -
本地切换到
master分支,从upsteam中拉取最新的代码 -
merge开发完成的feature分支,如果有冲突本地解决。 -
提交到
origin的master分支 -
提交pr,完成merge后,任务开发完成。
在这个流程中,origin的仓库只是起到一个中间的作用,并且在本地处理冲突,可以避免在GitHub上处理冲突时,造成