记录一下在项目里使用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. 从Libra看区块链的机遇

    一番码客 : 挖掘你关心的亮点.http://www.efonmark.com 关于未来的思考 记得去年扎克伯格搞Libra的时候,引起了世界的关注.但随着美国国会听证会的阻力,渐渐很少听见Libra ...

  2. Spring基础(一)_控制反转(IOC)

    Spring-IOC 1.简述 1.1 依赖注入DI 现实开发中,每一个应用都会由两个或多个类组成,这些类之间相互协作完成特定的业务逻辑.根据传统做法,每个对象负责管理与自己协作的对象的引用(也就是, ...

  3. java字符编码-Unicode编码问题刨根究底

    博客搬家: java字符编码问题 前段时间在读<java核心技术卷一>,遇到一些名词:码点.代码单元等,其实字面意思不难理解,解释如下 码点(code point):Unicode编码表中 ...

  4. 记一个实时Linux的中断线程化问题

    背景 有一个项目对实时性要求比较高,于是在linux内核上打了RT_PREEMPT补丁. 最终碰到的一个问题是,芯片本身性能不强,CPU资源不足,急需优化. 初步分析 看了下cpu占用率,除了主应用之 ...

  5. sqlserver backup and restore -- partital restore

    Like a tratitional database, sqlserver not only could resotre full database but also do restore one ...

  6. curl 和 tcpdump

    curl: 1.通常使用curl 来监控网址状态, #curl -m 5 -s -o /dev/null -w %{http_code} www.baidu.com #200 -m 设置访问超时时间, ...

  7. Mysql 导入导出备份

    恢复MySQL服务器上面的txt格式文件(需要FILE权限,各数据值之间用"制表符"分隔)   1.导入数据库服务器上的txt文件 mysql>load data infil ...

  8. 在Unity中使用 luajit 64位加密

    参考:https://blog.csdn.net/sun19880421/article/details/68070696 https://blog.csdn.net/mydreamremindme/ ...

  9. JMeter接口测试-如何循环使用接口返回的多值?

    前言 在用JMeter做接口测试的时候,经常会遇到这样一种情况:一个接口请求返回了多个值,然后下一个接口想循环使用前一个接口的返回值:第二种情况:只想循环请求前一个接口返回值中的随机不定长度的某一些值 ...

  10. vue路由--命名视图

    有时候想同时(同级)展示多个视图,而不是嵌套展示,例如创建一个布局,有 sidebar(侧导航) 和 main(主内容) 两个视图,这个时候命名视图就派上用场了.你可以在界面中拥有多个单独命名的视图, ...