2018-07-06 Git解决冲突

Git进阶-解决冲突文件

问题说明:

本地分支:master&active

修改代码分支:master

需合并代码分支:active

遇到的问题:在master分支上将代码commit之后,想要切换至active分支,报当前有冲突文件,必须解决冲突之后才可以切换(因为之前切换分支,代码会直接进行merge,所以就想着直接切换分支去merge就好,但是有错误提示了)

执行merge之前的操作步骤

1.查看当前状态

$git status   结果:有文件改动,需要提交文件

2.添加文件并commit

$git add -A

$ git commit -m "update fail cases"

3.查看日志

$git log  执行结果:可以看到自己提交过的最新记录

4.切换分支(想着会直接merge,就直接切换分支)

$git co active  执行结果:部分merge完成,部分有有冲突还是有什么问题,总之没有切换成功

tip:从第5步开始就是在尝试解决问题,是未知的

5.亲自merge文件

$git merge active 执行结果:当然和上面4执行结果一致(这时候master已经显示为:MERGING:表示正在merging状态)


心情描述:自己还是小白,不太敢乱操作,所以内心戏如下:

想法1:撤销merge,我不进行合并了,回到未merge之前状态(我怂)

想法2:怎么解决这些冲突,如何merge完成呢?

然后请教了百度和开发师傅,有了下文:

想法1的方案:

1.撤销merge

$git reset --hard HEAD

2.解决冲突文件

如果没有代码比对工具,只能自己去代码文件里面比对了,因为已经在merging状态,git已经将文件有冲突的地方标注出来,去查看代码里面会看到下面三个标志

①<<<<<<<HEAD

②=======

③>>>>>>>master

通过百度查看说:在①和②中间的是表示修改后的文件,②和③表示修改前的文件,

解决办法:不管是修改后还是修改前,如果是你自己修改的(如果涉及多人合作的话,就需要沟通一下了),那么你应该知道哪个是想要保留的,把需要保留的保留,需要删除的删除,并同时删除以上三个标记,然后重新保存,保存完了之后,就要当做新修改文件对待了,从上面的第二步:git add -A开始重新来一遍,就可以merge了,然后也可以切换分支了


后续:其实最开始不应该在master分支修改的,但是因为在sublime打开文件的时候,是从文件夹选择,然后打开,但是不管是master分支还是active分支,在sublime打开文件夹的时候没有标识,不知道打开的到底是哪个分支下的文件,所以就认为是master,然后每次运行也是在master下运行的用例,然后今天问了开发小哥哥,问怎么办?解答是在命令行切换至想要打开的分支,然后在sublime打开。但是还没有尝试,还不知道是不是,待下次验证!

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Git 命令行学习笔记 Git 基础 基本原理 客户端并不是只提取最新版本的文件快照,而是把代码仓库完整的镜像下来...
    sunnyghx阅读 3,951评论 0 11
  • Git使用教程:https://blog.csdn.net/tgbus18990140382/article/de...
    SkTj阅读 2,817评论 1 11
  • 前言:教程来源于Udacity的免费教程-用Git进行版本控制,这里仅是个人的笔记,参考使用。 git tag:给...
    地坛公园阅读 1,927评论 0 1
  • Flume是一个分布式的,可靠的,可用的,非常有效率的对大数据量的日志数据进行收集、聚集、移动信息的服务。Flum...
    明明德撩码阅读 992评论 0 0
  • 1、什么是面向对象思想(编程思想角度) (1)面向过程:关注的是解决问题的步骤 优点:在小型程序中代码量比较少,开...
    阿迪呀dity阅读 309评论 0 1