zoukankan      html  css  js  c++  java
  • 教你玩转Git-合并冲突

    Git 是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。Git 与常用的版本控制工具 CVS, Subversion 等不同,它采用了分布式版本库的方式,不必服务器端软件支持。

    教你玩转Git-合并冲突教你玩转Git-合并冲突

    合并并不仅仅是简单的文件添加、移除的操作,Git 也会合并修改。

    $ git branch
    * master
    $ cat runoob.php

    首先,我们创建一个叫做 change_site 的分支,切换过去,我们将 runoob.php 内容改为:

    < ?php
    echo 'runoob';
    ?>

    创建 change_site 分支:

    $ git checkout -b change_site
    Switched to a new branch 'change_site'
    $ vim runoob.php
    $ head -3 runoob.php
    < ?php
    echo 'runoob';
    ?>
    $ git commit -am 'changed the runoob.php'
    [change_site 7774248] changed the runoob.php
     1 file changed, 3 insertions(+)

    将修改的内容提交到 change_site 分支中。 现在,假如切换回 master 分支我们可以看内容恢复到我们修改前的(空文件,没有代码),我们再次修改 runoob.php 文件。

    http://www.51cto.com/it/news/2019/0923/14820.html
    https://www.linuxprobe.com/books

    $ git checkout master
    Switched to branch 'master'
    $ cat runoob.php
    $ vim runoob.php    # 修改内容如下
    $ cat runoob.php
    < ?php
    echo 1;
    ?>
    $ git diff
    diff --git a/runoob.php b/runoob.php
    index e69de29..ac60739 100644
    --- a/runoob.php
    +++ b/runoob.php
    @@ -0,0 +1,3 @@
    +< ?php
    +echo 1;
    +?>
    $ git commit -am '修改代码'
    [master c68142b] 修改代码
     1 file changed, 3 insertions(+)

    现在这些改变已经记录到我的 "master" 分支了。接下来我们将 "change_site" 分支合并过来。

    $ git merge change_site
    Auto-merging runoob.php
    CONFLICT (content): Merge conflict in runoob.php
    Automatic merge failed; fix conflicts and then commit the result.
    
    $ cat runoob.php     # 代开文件,看到冲突内容
    < ?php
    <<<<<<< HEAD
    echo 1;
    =======
    echo 'runoob';
    >>>>>>> change_site
    ?>

    我们将前一个分支合并到 master 分支,一个合并冲突就出现了,接下来我们需要手动去修改它。

    $ vim runoob.php 
    $ cat runoob.php
    < ?php
    echo 1;
    echo 'runoob';
    ?>
    $ git diff
    diff --cc runoob.php
    index ac60739,b63d7d7..0000000
    --- a/runoob.php
    +++ b/runoob.php
    @@@ -1,3 -1,3 +1,4 @@@
      < ?php
     +echo 1;
    + echo 'runoob';
      ?>

    在 Git 中,我们可以用 git add 要告诉 Git 文件冲突已经解决

    $ git status -s
    UU runoob.php
    $ git add runoob.php
    $ git status -s
    M  runoob.php
    $ git commit
    [master 88afe0e] Merge branch 'change_site'

    现在我们成功解决了合并中的冲突,并提交了结果。

  • 相关阅读:
    Tomcat内存溢出的三种情况及解决办法分析
    详解:贝叶斯算法(bayesian)在GCMail反垃圾邮件系统中的应用
    关于solr schema.xml 和solrconfig.xml的解释
    Java流操作,InputStream、OutputStream及子类FileInputStream、FileOutputStream;BufferedInpu
    Introduce Null Object(引入Null对象)
    Solr Schema.xml和solrconfig.xml分析
    @InitBinder
    程序员修炼之道
    JSTL 标签库详细介绍资料
    Spring Mvc入门实例
  • 原文地址:https://www.cnblogs.com/linuxprobe/p/11595256.html
Copyright © 2011-2022 走看看