zoukankan      html  css  js  c++  java
  • Git应用—02各种冲突场景处理(转载)


    Git冲突与解决方法

    https://www.cnblogs.com/gavincoder/p/9071959.html

    https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000/001375840202368c74be33fbd884e71b570f2cc3c0d1dcf000


    1、git冲突的场景

    · 情景一:多个分支代码合并到一个分支时;

    · 情景二:多个分支向同一个远端分支推送代码时;


    实际上,push操作即是将本地代码merge到远端库分支上。

    关于push和pull其实就分别是用本地分支合并到远程分支 和 将远程分支合并到本地分支,所以这两个过程中也可能存在冲突。

    git的合并中产生冲突的具体情况:
        <1>两个分支中修改了同一个文件(不管什么地方)
        <2>两个分支中修改了同一个文件的名称
    两个分支中分别修改了不同文件中的部分,不会产生冲突,可以直接将两部分合并。


    2、冲突解决方法

    · 情景一:在当前分支上,直接修改冲突代码--->add--->commit。

    · 情景二:在本地当前分支上,修改冲突代码--->add--->commit--->push

    注:借用vim或者IDE或者直接找到冲突文件,修改。


    3、实战演示

    (1)情景

      本地库中两个不同分支,修改同一个文件同一代码块,两分支先后将修改合并到master分支上,master在合并第二个分支代码时,报错:合并冲突。

    (2)本地库

    <1>master分支

    clip_image001

    clip_image002

    <2>建立两个分支

    clip_image003

    <3>两分支修改提交

    aBranch分支:

    clip_image004

    clip_image005

    clip_image006

    clip_image007

    bBranch分支:

    clip_image008

    clip_image009

    clip_image010

    (3)合并分支产生冲突

    合并aBranch分支(将aBranch分支合并到当前master分支上):

    clip_image011

    clip_image012

    注:
    git merge:默认情况下,Git执行"快进式合并"(fast-farward merge),会直接将Master分支指向Develop分支。
    使用--no-ff参数后,会执行正常合并,在Master分支上生成一个新节点。为了保证版本演进的清晰,建议采用这种方法。

    再合并bBranch分支,产生冲突:

    clip_image013

    mergeTest.txt 文件内容:

    (4)解决冲突

    --->在当前分支上(master),找到冲突文件,直接修改冲突代码,add,commit。

    clip_image014

    注:简单方法,使用vim修改,cat查看冲突文件。(注意要删除git自动生成的冲突代码分隔符)

    (5)完成冲突解决

    clip_image015

    注:提交或者合并都会生成git节点。每个节点对应一个代码版本。

  • 相关阅读:
    TCP的三次握手和四次挥手理解及面试题
    linux网卡配置文件参数
    linux的常用指令和配置文件
    django中的modelform和modelfoemset
    django中的form表单验证
    php快速开发的学习经历
    一个微信支付商场的经历
    https的学习过程
    使用java访问elasticsearch创建索引
    写博客是为什么
  • 原文地址:https://www.cnblogs.com/gispathfinder/p/10359886.html
Copyright © 2011-2022 走看看