美文网首页
git 多人协作开发的问题

git 多人协作开发的问题

作者: 凤非飞 | 来源:发表于2018-12-20 20:50 被阅读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的总和

    相关文章

      网友评论

          本文标题:git 多人协作开发的问题

          本文链接:https://www.haomeiwen.com/subject/yruukqtx.html