开发人员的本地应该是有两个分支,一个是development分支。另一个是他从development分支上创建出来的任务feature分支,
在这样的情况下所有的开发人员都要向development和他们自己的任务feature分支上push代码,开发人员在自己的feature分支上完成相关开发后需要将当前feature分支合并到development的时候,按照以下顺序来进行
1,将本地的任务feature分支push到线上对应的任务feature分支,
2,本地切换到development分支,并pull development分支,确保本地development分支是当前服务器上development分支的最新版本,
3,将自己本地的feature分支合并到本地的development分支,这时可能会有冲突,这里的冲突手动处理,处理完后再进行下一步
4,将合并后的feature分支push到服务器上
合并是在本地用两个对于线上的本地分支去合并,并且解决冲突。比如多了些文件,那么这些文件就是绿色的,冲突和减少了文件,那么就是红色的,比如新的Deployment因为其他feature,而增加了A,B文件,删减了C文件,修改了D,E文件,rename了F文件名为G。而我自己也修改了D文件,deployment的D文件修改影响了我的文件,rename了F为H。
git branch -b A origin/feature_A
git branch -b Deploymnet origin/Deployment
git branch
$ git branch
* Development
A
git pull(拉最新的Deployment代码)
git check A
git merge Deployment
而我那么合并时,A,B,E文件为绿的,C,D,G, H, F文件红色的
Changes to be committed:
new file: A
new file: B
modified: E
Unmerged paths:
(use "git add/rm <file>..." as appropriate to mark resolution)
added by them: G
added by us: H
both deleted: F
xxxxxxxxxxx: D
这时本地的feature分支会出现G,其实与我自己rename的H是一样的,这时我把H删掉,
然后发现D有冲突,进去解决冲突,就是里面部分文件不一致,这时和合并Deployment的开发人员决定用谁的。
解决后,再去删除F
git rm F
最后就ok 了
直接git commit -am "xx"
git push 到线上的feature分支,然后向Deployment请求合并
其实我解释的不是很好,找个时间画张图,A与Deployment解决冲突是指距离A从Deployment创建的时候,其他人合并到Deployment的总和
网友评论