zoukankan      html  css  js  c++  java
  • git merge conflict的处理

    注:补充一点,使用git am的时候,加上-3参数,这样conflict的时候就会出现如下的文本,方便我们解决conflict。

    会产生conflict的,一般是在做git merge, git cherry-pick, git rebase这些事情的时候。 

    conflict的时候,编辑冲突的文件,搜索<<<<,就会找到冲突的地方,一般语法是这样的:

    <<<<<<< HEAD: <filename>

    ......

    =======

    ...... 

    >>>>>>> <commit number & commit subject/branch name(which wanna be merged)>: <filename>

    七个<号到七个=中间的内容,是HEAD这个branch上的内容。七个=到七个>之间的内容,是要merge的patch的内容。

    1. git merge <branch which wanna be merged>

       对于git merge来说,七个<号到七个=中间的内容,是local branch上的内容。七个=到七个>之间的内容,是要merge进来的branch上的内容。

    2. git cherry-pick,跟git merge一样

    3. git rebase

       git rebase的做法很简单,就是将要rebase的第一个commit之前的那个commit checkout出来到一个"no branch"(没有名字的branch),然后从要rebase的第一个patch开始,一个一个的merge到这个"no branch"中去。完成之后,将这个"no branch"改名成你运行git rebase的时候所在的branch。

       所以,在git rebase的时候, 七个<号到七个=中间的内容,是"no branch"上的内容。七个=到七个>之间的内容,是本次要rebase的那个patch的内容。七个>号后面的commit name/commit subject也证明了这一点。

       解决了冲突之后,git add即可,不需要git commit,然后git rebase --continue即可。 

  • 相关阅读:
    网络面试题-1
    CentOS7下配置Squid代理
    docker使用harbor搭建私有仓库
    docker 基础命令
    docker要隔离的的6种namespace
    python 列表中的数字转为字符串
    python 排列组合
    filter函数
    Pytest配置文件声明自定义用例标识
    pytest参数化
  • 原文地址:https://www.cnblogs.com/super119/p/3044763.html
Copyright © 2011-2022 走看看