• eclipse 下的 merge 是如何实现的


    1 我从eclipse里面新建一个workspace
    2 新建一个分支
    3 再新建另外一个分支
    4 回到原分支, 修改某一行,比如a.txt的85行
    5 提交git add commit
    6 切换到新分支
    7 修改a.txt的85行(同一个文件同一行)
    8 提交git add commit
    9 切换到第一个分支
    10 git merge 新分支
    git bash提示merge conflict 然后eclipse自动显示冲突的车祸现场 然后修改之后 然后提交 就没有冲突了 然后提交git add commit
    然后本分支就正常了并且merge成功, 
    11 切换到第二个分支, 发现第二个分支任然是以前的样子 merge abc对abc是没有影响的 但对当前分支有影响.
    ---------------

    <<<<<<< HEAD
    border:1px solid red;
    background-color:Red;
    =======
    border:1px solid yellow;
    background-color:yellow;
    border-radius:5px;
    >>>>>>> abc

    这里面就有HEAD=当前分支
    abc代表被比较的分支

    ----

    有一个比较关键的一点就是, 当一个分支合并另一个分支之后, git add commit之后, 如果再次的merge另一个分支, 就不会有conflict,就是这么神奇啊。
    因为conflict process把两边的文件有冲突的地方放到了同一个地方, 并且用特殊的符号包围起来,无形之中吧同一行的东西抵消掉了,就没有冲突了

    什么情况下会有冲突呢,就是同一个行同一个文件都发生了改变且变化不同,于是产生了冲突, 
    比如,我现在分支a文件b的第三行发生改变, 此时如果其他分支不发生变化的话,那merge是成功的,
    但如果分支a文件b不发生改变, 但其他分支的文件b某一行发生了改变,那merge就会提示进入message的界面, 按wq!退出.

    <<<<<<< HEAD
    background-color:redddd;
    =======
    background-color:yellow;
    >>>>>>> abc

    所以conflict的定义是:当merge方和被merge方在同一行发生了改变, 且改变不同的时候才会冲突,如果改变是一样的呢,那冲突是没有的。比如上图,如果background-color的颜色都一样,那就是没有冲突的。

  • 相关阅读:
    9月23日JavaScript作业----用DIV做下拉列表
    9月23日JavaScript作业----日期时间选择
    9月23日JavaScript作业----两个列表之间移动数据
    9月22日下午JavaScript----Document对象
    9月22日上午JavaScript----window对象
    9月20日下午JavaScript函数--递归
    9月20日上午JavaScript函数
    9月19日下午JavaScript数组冒泡排列和二分法
    9月19日上午JavaScript数组
    9月6日表格标签(table、行、列、表头)(补)
  • 原文地址:https://www.cnblogs.com/qinqiu/p/5960255.html
Copyright © 2020-2023  润新知