记录一下在项目里使用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. Codeforces 1197E Count The Rectangles(树状数组+扫描线)

    题意: 给你n条平行于坐标轴的线,问你能组成多少个矩形,坐标绝对值均小于5000 保证线之间不会重合或者退化 思路: 从下到上扫描每一条纵坐标为y的水平的线,然后扫描所有竖直的线并标记与它相交的线,保 ...

  2. Go语言实现:【剑指offer】从尾到头打印链表

    该题目来源于牛客网<剑指offer>专题.​ 输入一个链表,按链表从尾到头的顺序返回一个ArrayList. Go语言实现: type ListNode struct { Val int ...

  3. 某cms审计思路,以及ci框架如何找寻注入点

    某cms审计思路,以及ci框架如何找寻注入点 ABOUT 之前闲着没事的时候审的某cms,之前看一群大表哥刷过一次这个cms,想着看看还能不能赶得上分一杯羹,还是审计出来些东西,来说一说一个前台注入吧 ...

  4. 《Python编程:从入门到实践》分享下载

    书籍信息 书名:<Python编程:从入门到实践> 原作名:Python Crash Course 作者: [美] 埃里克·马瑟斯 豆瓣评分:9.1分(2534人评价) 内容简介 本书是一 ...

  5. 自动化运维工具:ansible

    自动化运维工具:ansible Ansible(1):简介和基本概念 Ansible(2):安装配置 Ansible(3):ansible资源清单管理 Ansible(4):常用模块

  6. [Redis-CentOS7]Redis数据持久化(八)

    配置文件位置 /ect/redis.conf RDB存储配置 save 900 1 # 900秒之内发生一次写操作保存 save 300 10 # 300秒内写10次保存 save 60 10000 ...

  7. 编程语言的实现,从AST(抽象语法树)开始

    学习博客:https://baijiahao.baidu.com/s?id=1626159656211187310&wfr=spider&for=pc

  8. linux--解决celery消息中间件带来的一系列问题

    启动celery定时任务 1.celery -A OpsManage beat -l info -S django 2.celery -A OpsManage worker -l info 此时消息中 ...

  9. 移动端 location.href 无法成功跳转页面

    最近做的移动端页面在请求成功后要跳转页面,通过location.href实现的跳转.但同事在测试时,安卓机可以成功跳转,苹果IOS确无法成功跳转.   解决办法:在链接后面加一个随机参数,这样就可以跳 ...

  10. Linux Samba文件共享服务,安装与案例配置

    Samba服务器安装和配置 1:安装Samba服务器软件包 [root@localhost ~]# rpm -qa | grep samba [root@localhost ~]# yum -y in ...