1. 开源项目的Git-Flow
第一步:fork开源项目到自己Github/Gitlab账户下的远程仓库。
第二步:将自己账户下的远程仓库clone到本地电脑的本地仓库,本地仓库自动与远程仓库关联,并且会自动创建一个别名origin,指代这个自己账户下的远程仓库。
第三步:将开源项目的与自己的本地仓库关联,以便从开源项目获取最新代码。
第四步:如果开源项目的master分支有变更,本地仓库的master应该同步一下代码。
第五步:从本地仓库的master分支checkout出一个新的分支,用于开发新的功能。
第六步:新的功能开发完之后,应该向自己的账户下的远程仓库提交更新的代码。
第七步:远程仓库更新代码后,通过新的分支向开源项目的某个分支发出新的pr(pull request),由开源项目的负责人进行code review。
第八步:如果远程仓库当前分支的代码与要merge的开源项目的某个分支有冲突的话,需要解决冲突。如果没有冲突的话,则可以直接由负责人merge。
第二步使用的命令: git clone 你的远程仓库链接
第三步使用的命令:git remote add 自定义的名称 开源项目仓库链接
第四步使用的命令:git pull 自定义的名称 分支名成
第五步使用的命令:git checkout -b 新的分支名
第六步使用的命令:git push origin 本地分支名:远程分支名(如果已经默认关联这两个分支的话,则可以省略这两个分支名)
第八步解决冲突使用的命令:git pull 自定义的名称(将开源项目的远程分支fetch下来,再跟本地分支进行merge)
2. 讲解示例
我们以此开源项目为例进行讲解。
第一步:我们将其fork到自己的github账户下。
第二步:我们使用git clone
将其从我们账户下clone到本地。
第三步:将我们的本地仓库与开源项目的远程仓库关联。
首先使用git remote -v
看一下我们的本地仓库关联了哪些远程仓库。由下图可以看到,目前只关联了自己账户下的远程仓库。
然后使用git remote add
添加开源项目的远程仓库。再使用git remote -v
查看一下是否成功添加。
第四步:使用git pull
同步一下开源项目远程的master与本地仓库的master代码。有冲突的话,需要解决冲突。解决冲突可能需要手动删除统一文件中的某些行。
第五步:使用git checkout -b
切换一个新分支,开发新的功能。
比如我们在新的分支下面增加一个test.txt文件。再提交。
第六步:从本地仓库往账户下的远程仓库提交代码。
我们可以看到账户下的远程仓库多了一个新的分支。
第七步:从账户下的远程仓库的newbranch分支往仓库的master分支提一个pr。
填写本次的pr名称和描述,然后点击create pull request即可。名称和描述应该具有可读性。