• 23、如何解决合并分支时的冲突


    如果事先已经约好,比如各自完成的功能,那么发生冲突的概率就很小。

    如果开发时候,没有约定好规范,发生冲突概率大。

    模拟场景:

    在main分支上修改并保存test.html文件中的div标签的文本内容为“这是main分支上的代码”

    在终端执行  git add .

                        git commit -m main分支修改test.html

    git checkout dev  (现在切换到dev分支)

    在dev分支上修改并保存test.html文件中的div标签的文本内容为“这是dev分支上的代码”

    在终端执行  git add .

                        git commit -m dev分支修改test.html

    git checkout main  (现在切换到main分支)

    【现在把dev分支上的代码合并到main分支上】

    git merge dev    (发现报错merge failed。失败在test.html文件当中。)

    打开test.html文件,其中可能发现有编辑器的提示。我们在这个文件的同一地方在不同分支上进行了修改,git就不知道在怎么解决,让我们来解决。

    <<<<<<   HEAD (当前分支修改的代码)

           这是main分支上的代码

    =====  (等号下面是其他分支合并过来的代码)

           这是dev分支上的代码

    >>>>>>  dev 

    【如何解决冲突:方式一】

    git   merge   --abort  (忽略其他分支的代码,保留原分支的代码。即忽略dev分支代码,保留main分支代码)

    打开test.html文件,其中发现冲突没有了。

    【如何解决冲突:方式二】

    git merge  dev  (又出现冲突了)

    打开test.html文件,手动删除符号,保存后变成如下:

           这是main分支上的代码

           这是dev分支上的代码

    (即把特殊符号删除,留下和其他同事沟通后的代码)

    在终端执行

    git status    (出现红色提示  both modified test.html。即同时修改了这个文件)

    git add .

    git commit  (弹出一个可编辑的界面。输入i可进入编辑模式。输入"这是解决冲突之后的正确代码  解决了test.html当中的冲突")(这样是给大家一个标识,就是解决了哪一个分支上面的哪一个文件,最终我们怎么积解决的)(先按esc再输入:wq,就可以退出编辑界面。)

    git status   (此时没有东西可以提交了)

    git commit   -m  解决冲突之后的代码

  • 相关阅读:
    [转]解决ORACEL数据库“exp导出老是出现ORA-00904”
    教程
    [转]web初学者需要掌握哪些技术
    sublime的使用技巧
    安装Sublime Text
    memcached内存分类机制
    Java生产者和消费者
    一致性哈希原理及应用浅析
    Java线程状态分析
    Java多线程中断机制
  • 原文地址:https://www.cnblogs.com/Strugglinggirl/p/15993042.html
Copyright © 2020-2023  润新知