1、首先合作开发项目时,需要克隆代码项目仓库命令,如下:
git clone git@github.com:huangzhiuyun/clover.git
2、下载完项目之后,本地的项目一般是处于master分支,需要创建本地的develop分支,以便提交代码到远端的develop测试分支:
先新建develop分支,当前在master上执行:
git checkout -b develop
然后就会新建并且换到develop分支,再执行:
git pull
更新远端develop代码到本地develop分支。
3、开发新需求,这时再切换回master分支,使用:
git checkout master
在master分支上,创建新的分支去开发自己的新需求。
git checkout -b huangzy
4、然后开发了新需求,开发完成之后需要提交到代码库:
git add .
git commit -m "massage"
或者
git commit -am "massage"
然后合并到测试环境测试开发的新功能有没有问题:
git checkout develop
git pull
git merge huangzy
当执行完merge的操作可能会出现冲突conflict,这时候就要解决冲突conflict,一般来说就是,自己改变的代码就接受自己的,自己没动过的代码就接受develop上的代码。如果出现你和小伙伴开发了同一部分代码时,需要叫上共同开发该功能的小伙伴来核对应该保留哪一段代码,解决完冲突需要重新commit一次,也就是:
git commit -m "fix conflict"
就算合并错了,没push到远端的话,就不用慌。只要在develop上回滚到上一个版本,重新执行一遍pull,merge操作就好了。
merge 合并完代码之后就可以push代码上远端的develop测试服测试你行开发的功能了。
git push origin develop:develop
友情提醒:push完代码之后,测试服上面需要 git pull ,才能将你的代码下载到测试服的机子上,这样重启之后你的代码才能生效。
当该功能还有bug,就需要重新回到自己的分支上修改代码,重新执行上面步骤4,直到新功能没问题为止。
5、新功能没问题之后,切换到master分支上,更新本地master的代码:
git checkout master
git pull
避免这段时间有人和你共同开发了某部分代码,产生了冲突。如果冲突没解决,你的功能一上线,就会导致整个服务报错。
切换到自己的分支,合并master的代码之后,有冲突就解决冲突:
git checkout huangzy
git merge master
这时候有冲突就解决冲突,解决完之后再push代码:
git push origin haungzy:huangzy
提交完代码之后就可以去创建一个merge request ,将你的代码合并到master重启上线了。
注意:
1、注意一定不能将develop的代码合并到master上,这一点很重要,非常重要,超级重要。
2、每次开发新功能的分支都是要从master切出分支来开发,除非是迭代开发,但是就算是迭代开发,也是建议开功能上线之后再从最新的master切出来开发分支。
3、当某功能在master上有,而develop上没有,你想在develop上添加这个功能。分别处在两个分支上使用git pull,需要先更新本地的master和develop分支。可以处于develop分支上,将本地的master合并进来。 这时候有冲突发生的话,一定要谨慎,找出是哪一部分有冲突,是谁开发的这部分代码,需要保留哪一段代码,这个一定要弄清楚,才能解决冲突。