解决冲突

现在我把gitTest中的东西全删了包括那个.git文件。

初始化仓库git init,新建一个a.txt,在里边写个master,执行git add a.txt,然后执行git commit -m ‘add a.txt’

然后创建第一个分支 git branch feature1,然后创建第二个分支并切换到第二个分支git checkout -b feature2,在a.txt中另起一行添加feature2,然后执行git add a.txt和 git commit -m ‘feature2 add a word’,然后切换到master,git checkout master,把feature2分支合并到master分支, git merge –no-ff -m ‘merge feature2’ feature2。之后切换到feature1,git checkout feature1,在a.txt中另起一行添加feature1,然后执行git add a.txt和 git commit -m ‘feature1 add a word’。

现在整理一下,master分支a.txt中原始的数据为

master
  • 1

后来创建了分支feature1里边的内容同样为

master
  • 1
  • 2

后来创建了feature2分支,并把feature2中的内容合并到了master,所以现在master中a.txt的内容为

master
feature2
  • 1
  • 2
  • 3

后来我把feature1中的信息改为

master
feature1
  • 1
  • 2
  • 3

现在master中的内容和feature1最初复制的内容不一样,现在切换到master分支,把feature1合并到master肯定会有冲突。

执行git merge feature1

$ git merge --no-ff -m 'merge feature1' feature1
Auto-merging a.txt
CONFLICT (content): Merge conflict in a.txt
Automatic merge failed; fix conflicts and then commit the result.
  • 1
  • 2
  • 3
  • 4
  • 5

会发现有冲突了,这时候a.txt中的内容为

master
<<<<<<< HEAD
feature2
=======
feature1
>>>>>>> feature1
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

Git用<<<<<<<=======>>>>>>>标记出不同分支的内容。HEAD为当前所在分支的内容,也就是说现在master中的内容。feature1为feature1分支中的内容。

现在我a.txt中内容改为

master
feature2
feature1
  • 1
  • 2
  • 3
  • 4

然后执行

YZ@YZ MINGW64 /d/gitTest (master|MERGING)
$ git add a.txt

YZ@YZ MINGW64 /d/gitTest (master|MERGING)
$ git commit -m 'fix confict'
[master 6f57951] fix confict

YZ@YZ MINGW64 /d/gitTest (master)
$
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

这样就好了。git log –graph –pretty=oneline –abbrev-commit

–pretty=oneline这个参数的目的是不再显示Author和Date,只显示带有id号的一行。–abbrev-commit的意思是缩写id号。

YZ@YZ MINGW64 /d/gitTest (master)
$ git log --graph --pretty=oneline --abbrev-commit
*   7f2f3b5 (HEAD -> master) fix conflict
|\
| * f56a04d (feature1) feature1 add a word
* |   1387cb8 Merge branch 'feature2'
|\ \
| |/
|/|
| * 14ef937 (feature2) feature2 add a word
|/
* cf361f6 add a.txt

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

要修改上一条提交信息,可以使用git commit –amend命令。上一条的提交信息为fix config,但它其实是feature1分支的合并,解决合并时发生的冲突只是过程之一,这样标记是在不妥。于是,我们修改这条提交信息。

$ git commit -m 'merge feature1' --amend
[master dea2e9d] merge feature1
 Date: Sun Aug 27 21:24:11 2017 +0800
  • 1
  • 2
  • 3
  • 4

再次查看日志,可以发现其变成了

$ git log --graph --pretty=oneline --abbrev-commit
*   dea2e9d (HEAD -> master) merge feature1
|\
| * f56a04d (feature1) feature1 add a word
* |   1387cb8 Merge branch 'feature2'
|\ \
| |/
|/|
| * 14ef937 (feature2) feature2 add a word
|/
* cf361f6 add a.txt

Git如何解决冲突的更多相关文章

  1. git 提交解决冲突(转载)

    转载 git 提交解决冲突 http://www.cnblogs.com/qinbb/p/5972308.html   一:git命令在提交代码前,没有pull拉最新的代码,因此再次提交出现了冲突. ...

  2. git如何解决冲突(代码托管在coding)

    分支A提交合并请求到分支B,有冲突 git fetch code 拉取远程仓库的其他分支代码(我拉代码是remote add code所以这里是code,可以用git remote查看) git ch ...

  3. git之解决冲突

    前面几次使用git,一直对于冲突的这个问题不是很理解,感觉有些时候就会产生冲突,在此记录一下解决冲突的流程 1.git bash上面冲突显示 2.在idea上面可以看到冲突的文件 3.去解决冲突 4. ...

  4. git 提交解决冲突

    一:git命令在提交代码前,没有pull拉最新的代码,因此再次提交出现了冲突. error: You have not concluded your merge (MERGE_HEAD exists) ...

  5. git如何解决冲突(master分支的上的冲突--太岁头上动土)

    欢迎加入前端交流群交流知识&&获取视频资料:749539640 git是什么就不废话了,详情点击 出现以下情况怎么解决? 有个index.ts文件 export const ENV = ...

  6. git pull解决冲突

    git报错:Please commit your changes or stash them before you merge. 解决:1.不需要保留本地修改的话,直接将有冲突的文件还原再pull:g ...

  7. git学习(十一) idea git pull 解决冲突

    测试如下: 先将远程的代码修改,之后更新: 之后将工作区修改的代码(这里修改的代码跟远程修改的位置一样)提交到本地,之后拉取远程的代码,会发现有冲突: Accept Yours 就是直接选取本地的代码 ...

  8. git -- 如何解决冲突

    遇到冲突,首先要编辑冲突文件,可以使用vim或者其他工具,冲突文件变现为: <<<<HEAD 到 ==== :代表本地分支的修改内容 ==== 到 >>>&g ...

  9. Git 在解决冲突的时候文件覆盖

    更新代码导致被还原或覆盖的场景:1.触发冲突的必要条件是修改同一个文件且修改的位置非常近,否则Git会自动合并其内容避免更新代码导致被还原或覆盖的解决方案1.少修改的地方(生产环境.公网测试环境):推 ...

随机推荐

  1. 洛谷P5206 [WC2019] 数树(生成函数+容斥+矩阵树)

    题面 传送门 前置芝士 矩阵树,基本容斥原理,生成函数,多项式\(\exp\) 题解 我也想哭了--orz rqy,orz shadowice 我们设\(T1,T2\)为两棵树,并定义一个权值函数\( ...

  2. 最优的cuda线程配置

    1 每个SM上面失少要有192个激活线程,寄存器写后读的数据依赖才能被掩盖   2 将 寄存器 的bank冲突降到最低,应尽量使每个block含有的线程数是64的倍数   3 block的数量应设置得 ...

  3. springboot junit单元测试报错

    1.测试类中如下方框为主函数 2.application.yml注意如下2个地方 3.主函数

  4. P1903 [国家集训队]数颜色 / 维护队列 带修改的莫队

    \(\color{#0066ff}{ 题目描述 }\) 墨墨购买了一套N支彩色画笔(其中有些颜色可能相同),摆成一排,你需要回答墨墨的提问.墨墨会向你发布如下指令: 1. Q L R代表询问你从第L支 ...

  5. luogu1210 回文检测

    Manacher 正确读法:抹内A撤(马拉车) (跟着假硕学英语) 我们把原来的字符串,通过玄学处理,变成只留下字母,且每两个字母之间有一个奇怪的字符的那种Manacher专用字符串. 建立双射关系f ...

  6. Leetcode 520. Detect Capital 发现大写词 (字符串)

    Leetcode 520. Detect Capital 发现大写词 (字符串) 题目描述 已知一个单词,你需要给出它是否为"大写词" 我们定义的"大写词"有下 ...

  7. 前端优化系列之一:dns预获取 dns-prefetch 提升页面载入速度

    问题:怎么做到dns域解析?   用于优化网站页面的图片   问题:怎么提升网站性能? dns域解析,是提升网站的一个办法.   DNS Prefetch,即DNS预获取,是前端优化的一部分. 一般来 ...

  8. Unity 使用小技巧

    本文介绍我遇到过我Unity使用小技巧,有了这些技巧,项目做起来,溜得飞起 1.快速设置相机的位置 2.固定面板

  9. IP 分段 子网掩码

    子网掩码分网段 例如 200台机器分成4个子网 [ ip 段 ] 200台机器,4个子网,那么就是每个子网50台机器,设定为192.168.10.0,C类的IP,大子网掩码应为255.255.255. ...

  10. JavaScript权威指南--闭包讲解摘记

    不积跬步无以至千里,不积小流无以成江河. 关于闭包的解释,在<JavaScript权威指南>中讲的很透彻了.今天看了书中的一个段讲解,更加深了对闭包的理解,特此记下,以备查阅. 在同一个作 ...