记录一下在项目里使用git遇到代码冲突时的解决方法

问题:当我和我同事两个人改了相同的一个文件,他在我提交前提交了,这时候我就提交不了了,并且也pull不下来他的代码

会报错:

Your local changes to the following files would be overwritten by merge:

解决方法一:git checkout还原然后再pull(就是覆盖更新的意思)

解决方法二:先add 再commit 最后pull 就会在本地合并你的代码,最后检查没问题再push

------------------------------------------------------------------------------------------------------------------------

下面是搜到的一篇比较详细的git解决冲突文章分享给大家↓

假设冲突文件是 test/TestCase.php

下面分5种情况讨论。

1、本地不变。 
  然后远程别人有更新。 
  git pull 
  这种最简单,没有冲突,本地工作区直接更新 
  
2、我本地修改,但是不add。 
然后远程别人有更新,此时 :     
git pull, 
git会告诉你: 
error: Your local changes to the following files would be overwritten by merge: 
        tests/TestCase.php 
  此时,我  
   git checkout -- tests/TestCase.php 
  千万注意,上条命令会导致你自己的修改丢失了!! 
  然后git pull.成功。 
  这种情况下,你自己的修改完全丢失。本地接受了远程的修改。 
  
3、我本地修改,但是已经add了。 
  然后别人远程更新, 
  git pull 
  这种情况,和上面几乎一样。 
  git reset HEAD test/TestCase.php  
  上面这条命令可以理解为add命令的逆命令。即,取消add操作。 
  
  然后继续 
  git checkout -- tests/TestCase.php 
  千万注意,上条命令会导致你自己的修改丢失了!! 
  然后git pull.成功。 
  这种情况下,你自己的修改完全丢失。 本地接受了远程的修改。

4、我本地修改,add 且 commit了 
  然后别人远程更新, 
  git pull 
  注意:这种情况和第2,第3种情况不同。git会认为你的commit也很重要。同等重要。 
突然发现,自动进入vi界面。 
Merge branch 'master' of https://github.com/xxxx 
这什么意思呢?就是git会主动再帮你添加一个commit。 
先让你写点注释,并且它已经帮你写了几句话 
那自己写点东西,然后保存退出vi 
请注意,这个commit是在本地的,还没有发到远程。 
这个commit会自动合并 你添加到代码,和 别人远程更新的代码, 
所以,之后请自己检查一下这个代码有无问题。

如果都没有问题,则你现在 
  git push 
  这个命令可以把你的本地改动推送到远程。 
  push之后,远程得到你和他人的所有更新。push之前,仅本地得到你和他人的所有更新。 
  
5、使用分支功能。 
  git的分支功能很强大,应该多使用。 
  上面几种情况都没有使用分支。使用分支会更好。 
  首先,我本地新建并切换分支branch_1,自己起有意义名字,并修改文件。 
  git checkout -b branch_1 
    
  vi test/TestCase.php 
  git add tests/TestCase.php 
  git commit -m "change test" 
  
  现在,别人已经更新了远程主分支代码(没更新就极其方便了,也不必说了,快速更新) 
  我想把分支合并到主分支。 
  我应该,先回到主分支,并更新。 
  git  checkout master 
  git pull 
  
  然后,在本地,把我的修改分支合并上去。 
  git merge branch_1 
  自动进入vi界面,让你写注释。 
  
  然后会合并好。 
  类似提示: 
  tests/TestCase.php | 3 ++- 
  上面,两个加号表示文件增加了两行,一个减号表示文件减少了一行。 
  
  此时,注意,凡是进入vi界面后, 
  最好自己再检查一下程序,检查那些被提示修改过的文件,(这是一个好习惯,但我从来不遵守) 
  如果认为正确,最后, 
  git push,推送到远程。 
  
  push之后,远程得到你和他人的所有更新。push之前,仅本地得到你和他人的所有更新。

========== 
总结,大部分情况下,都推荐使用第5种,使用分支的方法,来管理文件修改冲突。

转自:https://www.iteye.com/blog/xieye-2433229

git文件冲突合并的报错:Your local changes to the following files would be overwritten by merge的更多相关文章

  1. 【Git】pull遇到错误:error: Your local changes to the following files would be overwritten by merge:

    这种情况下,如何保留本地的修改同时又把远程的合并过来呢? 首先取决于你是否想要保存本地修改.(是 /否) 是 git stash git pull origin master git stash po ...

  2. Git出现error: Your local changes to the following files would be overwritten by merge: ... Please, commit your changes or stash them before you can merge.的问题解决(Git代码冲突)

    在使用git pull拉取服务器最新版本时,如果出现error: Your local changes to the following files would be overwritten by m ...

  3. Laravel 5.2--git冲突error: Your local changes to the following files would be overwritten by merge:

    今天在服务器上git pull是出现以下错误: error: Your local changes to the following files would be overwritten by mer ...

  4. 解决git pull出现: Your local changes to the following files would be overwritten by merge: ...的问题

    今天在服务器上git pull是出现以下错误: error: Your local changes to the following files would be overwritten by mer ...

  5. git error: Your local changes to the following files would be overwritten by merge:xxxxxx ,Please commit your changes or stash them before you merge.的phpstorm解决办法

    git报错 error: Your local changes to the following files would be overwritten by merge: .idea/encoding ...

  6. "Your local changes to the following files would be overwritten by merge" on git

    运行: git merge --ff origin/master 得到错误信息: error: Your local changes to the following files would be o ...

  7. Git版本控制工具使用:Error pulling origin: error: Your local changes to the following files would be overwritten by merge

    摘自: CSDN 逆觞 git在pull时,出现这种错误的时候,可能很多人进进行stash,相关stash的请看:Error pulling origin: error: Your local cha ...

  8. git pull 提示错误,Your local changes to the following files would be overwritten by merge

    error: Your local changes to the following files would be overwritten by merge: Please commit your c ...

  9. git pull的时候发生冲突的解决方法之“error: Your local changes to the following files would be overwritten by merge”

    今天在使用git pull 命令的时候发生了以下报错 目前git的报错提示已经相关友好了,可以直观的发现,这里可以通过commit的方式解决这个冲突问题,但还是想看看其他大佬是怎么解决这类问题的 在网 ...

随机推荐

  1. 使用Intellij编写Spring Hello World

    编写基于Intellij2016.3与Java SDK1.8 下载Spring最新jar包: http://repo.spring.io/release/org/springframework/spr ...

  2. 代理IP批量验证程序

    #include <afxinet.h> #include <afxwin.h> #include <iostream> #include <fstream& ...

  3. 再谈typedef(重点为函数指针)

    有种很方便的写法. typedef int *p: p pointer: 这时直接把pointer带入原式中,取代p然后去掉typedef,得到的结果就是int * pointer: 哈哈,这样直接替 ...

  4. python学习记录(七)

    0904--https://www.cnblogs.com/fnng/archive/2013/04/24/3039335.html 0904--https://www.cnblogs.com/fnn ...

  5. python学习记录(五)

    20180829--https://www.cnblogs.com/fnng/archive/2013/04/20/3032563.html 字典 字典的使用 现实中的字段及在Python中的字段都进 ...

  6. python dict 中的中文处理

    dict1 = {'中':'国 '} print dict1 ##{'\xc3\xa4\xc2\xb8\xc2\xad': '\xc3\xa5\xc2\x9b\xc2\xbd'} import jso ...

  7. 这个 Spring 循环依赖的坑,90% 以上的人都不知道

    1. 前言 这两天工作遇到了一个挺有意思的Spring循环依赖的问题,但是这个和以往遇到的循环依赖问题都不太一样,隐藏的相当隐蔽,网络上也很少看到有其他人遇到类似的问题.这里权且称他非典型Spring ...

  8. gulp 压缩文件2 摘

    一下代码用来简单的压缩 .js  和 .css   ;  在cmd里执行 gulp minifycss    minifyjs,各task执行是正常的. 注意,先安装后相应的模块,建议安装到本地. 说 ...

  9. Github 小白简单教学

    Git和Github简单教程   原文链接:Git和Github简单教程 网络上关于Git和GitHub的教程不少,但是这些教程有的命令太少不够用,有的命令太多,使得初期学习的时候需要额外花不少时间在 ...

  10. 一. 数据分片和路由 <<大数据日知录>> 读书笔记

    本章主要讲解大数据下如何做数据分片,所谓分片,即将大量数据分散在不同的节点,同时每个存储节点还要做副本备份. 而一般的抽象分片方法是, 先将数据映射到一个分片空间,这是多对一的关系,即一个数据分片区间 ...