在使用协同开发难免会出现同时修改某个文件导致代码冲突的问题


* branch master -> FETCH_HEAD
error: Your local changes to the following files would be overwritten by merge:
lib/pages/search_page.dart
Please commit your changes or stash them before you merge.
Aborting
Updating 657e136..4f8135c

一、使用 stash 缓存修改

最简单的就是使用git stash 将自己修改的代码片段进行一个本地仓库的临时缓存


$ git stash
Saved working directory and index state WIP on master: 657e136 search page modif ied

使用git stash list 查看缓存代码片段


$ git stash list
stash@{0}: WIP on master: 657e136 search page modified

使用了git stash命令将改动的代码缓存后,就可以执行pull 将远程仓库更新到本地了,

现在使用pull 更新代码


$ git pull origin master

现在更新没问题了

再将我们自己修改的代码合并到更新后的代码中去


$ git stash pop stash@{0}
Auto-merging lib/pages/search_page.dart
CONFLICT (content): Merge conflict in lib/pages/search_page.dart

其中stash@{0} 就是git stash时的一个标记,也可使用git stash save XXX 来定义一个自己标记,方便自己查询管理

现在回到自己写的代码中去,你会发现





很明显git 帮你将远程的和本地的分开标记出来了,现在我们只需要将自己修改过的地方合并到Updated upstream中去再 commit 就ok

其实stash 有点类似这个情景(我们平时写代码,有个同事说哎XX 我提交了一个代码是否你也修改了 XX方法?也是你意识到了直接更新定会出现冲突,咋办! 我们就像将自己修改的文件先拷贝一份呗,然后在将同事提交的代码更新下来,然后再将自己改过的方法合并进去,再提交)。

二、直接还原

有时候我们本地并没有修改多少,使用直接还原也许更省事,

先使用git log 查询一下提交记录


$ git log
commit 4f8135c32d508d250b83fe12644c4b65db87a1af (HEAD -> master, origin/master)
Author: dex <601078218@qq.com>
Date: Thu Nov 7 22:19:04 2019 +0800 the tab_navigator.dart is modified ## ... 省略其他log

直接拷贝 commit版本后的hash码


$ git reset --hard 4f8135c32d508d250b83fe12644c4b65db87a1af
HEAD is now at 4f8135c the tab_navigator.dart is modified

ok 代码已经还原到上一次提交状态,但是这个需要谨慎使用,执行还原后你修改的代码将不复存在!

解决git 本地代码与远程仓库冲突问题的更多相关文章

  1. 解决git push至远程仓库失败的问题

    产生问题的原因: 远程仓库存在本地不存在的文件, 一个常见的例子是创建repository时勾选了README.md, 但此时本地还没有这个文件, 就会导致本地文件无法同步到远程仓库的问题. 解决方法 ...

  2. 解决因为本地代码和远程代码冲突,导致git pull无法拉取远程代码的问题

    一.问题 当本地代码和远程代码有冲突的时候,执行git pull操作的时候,会提示有冲突,然后直接终止本次pull,查了些资料没有找到强制pull的方式,但是可以使用如下方式解决. 二.解决思路 可以 ...

  3. git 本地与远程仓库出现代码冲突解决方法

    提交过程中报错: [python@heaven-00 Selesystem]$ git push -u origin masterUsername for 'https://github.com': ...

  4. git 第一次上传本地代码到远程仓库,解决 ! [rejected] master -> master (non-fast-forward)错误

    使用git想GitHub远程仓库上传代码的基本步骤一般是 初始化为git仓库 git init 添加所有要提交的文件 git add . 本次提交说明 git commit -m '提交说明' 关联G ...

  5. Myeclipse如何使用自带git工具向远程仓库提交代码(转)

    Myeclipse如何使用自带git工具向远程仓库提交代码 第一步:将改动的代码标记 项目右键:team->synchronize workspace 点击确定 项目右键>add to g ...

  6. git关联github远程仓库的问题

    git关联github远程仓库的时候,报fatal: remote origin already exists. 导致这个问题原因可能是之前关联的时候关联错了,再次关联就不行了. 解决办法是: 1.将 ...

  7. git如何删除远程仓库的某次错误提交

    git如何删除远程仓库的某次错误提交 如果远程仓库,能ssh访问,那就跟本地没什么区别   reset命令有3种方式   git reset --mixed 此为默认方式,不带任何参数的git res ...

  8. 解决android studio引用远程仓库下载慢(转)

    解决android studio引用远程仓库下载慢(JCenter下载慢) 第一种方法 使用开源中国的maven库 阿里云的(速度飞快):http://maven.aliyun.com/nexus/c ...

  9. [gitHub实践] git基础:远程仓库的使用

    [gitHub实践] git基础:远程仓库的使用 版权2019.6.2更新 git 基础 远程仓库的使用 git remote # 查看远程仓库 $ git remote # 克隆的仓库服务器默认名字 ...

  10. git指令-添加远程仓库

    git指令-添加远程仓库 首先在GitHub上创建属于你自己的远程仓库:例如我创建的远程仓库mybatis用于我最近保存的mybatis代码 目前,在GitHub上的这个learngit仓库还是空的, ...

随机推荐

  1. Python--相关环境的安装,以及hello world的实现

    相关环境 进入官网:https://www.python.org/downloads/ 点击这里: 来到新的界面之后,向下滑动: 找到上图中的界面,选择版本进行下载即可. 具体的安装步骤可以参考这里看 ...

  2. 17.explicit关键字

    c++提供了关键字explicit,禁止通过构造函数进行的隐式转换.声明为explicit的构造函数不能在隐式转换中使用. [explicit注意] ● explicit用于修饰构造函数,防止隐式转化 ...

  3. 在EF Core中为数据表按列加密存储

    假设有User表 public class User : Entity<int> { public int Id { get; set; } public string UserName ...

  4. [Java EE]辨析: POJO(PO / DTO / VO) | BO/DO | DAO

    概念不清,会很影响开发中的逻辑性和条理性,进而影响接口设计,代码编写的质量. 网络上大家对这些个概念的探究很多,但终究没有一个统一的说法. 不论哪家解释,我觉得最重要的是: 1)词汇之间的解释统一: ...

  5. 五月二十七日jdbc,算法以及数据库

    1.ResultSetMetaData接口主要获得结果集.例如:结果集字段数量和名字通过ResultSet的getMetaData()方法获得对应对象 public class app17_20 { ...

  6. Gartner最新报告,分析超大规模边缘解决方案

    当下,酝酿能量的超级边缘. 最近,我们在谈视频化狂飙.谈AIGC颠覆.谈算力动能不足,很少谈及边缘.但"边缘"恰恰与这一切相关,且越发密不可分,它是未来技术发展的极大影响因子. & ...

  7. IDEA 修改Maven默认的全局设置

    每次打开Maven项目都需要重新配置Maven的地址.非常不爽! 解决方法:找到File->Other Settings->Default Settings 修改配置 下次打开就不用再配置 ...

  8. JS 一些基本正则校验

    记录下JS一些基本正则校验,以备后需. 1 //手机号码校验 2 function formCheckMobilePhone(data) { 3 var pattern = /^[1-9]{1}\d{ ...

  9. Springboot一些常用注解

    Springboot启动注解 @SpringbootApplication 这个注解是Springboot最核心的注解,用在Springboot的主类上,标识这是一个Springboot应用,用来开启 ...

  10. 介绍箭头函数的 this

    由于箭头函数不绑定this, 它会捕获其所在(即定义的位置)上下文的this值, 作为自己的this值 1. 所以 call() / apply() / bind() 方法对于箭头函数来说只是传入参数 ...