git 多人协作开发的问题

2018-12-20  本文已影响0人  凤非飞

开发人员的本地应该是有两个分支,一个是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的总和

上一篇 下一篇

猜你喜欢

热点阅读