zoukankan      html  css  js  c++  java
  • dev和master合并冲突解决

    前景

    master主分支,dev是开发分支,master会保持最新的dev代码

    问题的产生

    1. dev开发新功能
    2. 版本发布,dev合并到了master,发布生产环境
    3. 新需求来了,在dev进行开发
    4. 同时,线上代码有bug,从master拉新分支,改bug,之后合并到master
    5. master与dev这时代码不一致,以后合并有可能会有冲突
    6. dev开发完成,上线前,先与最新master做一下rebase,解决冲突
    7. git rebase会根据你的git commit进行冲突解决,每次都要进行git rebase --continue,这是比较烦人的
    8. git log找到dev是在哪个commit里合并到master的,找到后git reset --soft 把dev新需求合并成一个commit
    9. 最后再git rebase就可以了

    相关git命令

    找与master相同代码时的commit id

    $ git log
    commit 9f4c0939ce30aca3f4e18e69b2deed7b721b3ebb (HEAD -> master)
    Author: lind <bfyxzls@sina.com>
    Date:   Sat Apr 27 12:45:24 2019 +0800
    
        master2
    
    commit 09b6898a5b32ac5e23745f7b343424170869045a
    Author: lind <bfyxzls@sina.com>
    Date:   Sat Apr 27 12:44:48 2019 +0800
    
        master1
    
    commit c9507744d6528a3df9529d92953c896a4c2d38a7
    Author: lind <bfyxzls@sina.com>
    Date:   Sat Apr 27 12:43:28 2019 +0800
    
        dev2
    
    commit 817d0275820c83acdf5513a5fd5855a6eb84443c
    Author: lind <bfyxzls@sina.com>
    Date:   Sat Apr 27 12:42:59 2019 +0800
    
    

    合并commit

    $ git reset --soft  c9507744d6528a3df9529d92953c896a4c2d38a7
    $ git add .
    $ git commit -m "合并commit"
    

    在rebase时,冲突提交数为1个,之前是dev有几次新的提交,就要解决几次

    $ git rebase master
    Administrator@WIN-1AL08P10TJ8 MINGW64 /c/testgit (dev|REBASE 1/1)
    

    解决冲突,删除或者保留对应的代码,最后再保存,提交即可

    Administrator@WIN-1AL08P10TJ8 MINGW64 /c/testgit (dev|REBASE 1/1)
    $ git add .
    
    Administrator@WIN-1AL08P10TJ8 MINGW64 /c/testgit (dev|REBASE 1/1)
    $ git rebase --continue
    Applying: 合并commit
    
    Administrator@WIN-1AL08P10TJ8 MINGW64 /c/testgit (dev)
    
    
  • 相关阅读:
    关于自链接的视图的更新
    JavaScript局部变量与全局变量2
    减少IDE中的新建项
    whitespace对select无效
    学习摘录21
    让我记得写文档的设置
    本地连接不见了
    jquery 学习笔记
    jquery用load引入页面
    android笔记
  • 原文地址:https://www.cnblogs.com/lori/p/10778412.html
Copyright © 2011-2022 走看看