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


* 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. AD域安全攻防实践(附攻防矩阵图)

    以域控为基础架构,通过域控实现对用户和计算机资源的统一管理,带来便利的同时也成为了最受攻击者重点攻击的集权系统. 01.攻击篇 针对域控的攻击技术,在Windows通用攻击技术的基础上自成一套技术体系 ...

  2. 一起听、一起看、一起唱掀起Z世代青年社交浪潮

    6月5日,声网Agora 联合人人都是产品经理在成都举办了主题为"社交泛娱乐APP运营增长力和新玩法解析"的沙龙.现场围绕社交泛娱乐新玩法解析以及出海的新机遇.支付痛点.增长.运营 ...

  3. 机器学习基础02DAY

    数据的特征预处理 单个特征 (1)归一化 归一化首先在特征(维度)非常多的时候,可以防止某一维或某几维对数据影响过大,也是为了把不同来源的数据统一到一个参考区间下,这样比较起来才有意义,其次可以程序可 ...

  4. 网络图片的爬取和存储.py(亲测有效)

    import requests import os url = "https://ss0.baidu.com/7Po3dSag_xI4khGko9WTAnF6hhy/zhidao/pic/i ...

  5. Mac 音频转换器推荐 DRmare Audio Converter、Audi Free Auditor

    给大家推荐两款 Mac 上的音频转换器,这两款转换器都可以转换苹果音乐,iTunes歌曲或者一些常规的音轨到MP3, FLAC, WAV, M4A, AAC格式等等,转换后我们就可以在所有的设备和播放 ...

  6. Java语言在Spark3.2.4集群中使用Spark MLlib库完成朴素贝叶斯分类器

    一.贝叶斯定理 贝叶斯定理是关于随机事件A和B的条件概率,生活中,我们可能很容易知道P(A|B),但是我需要求解P(B|A),学习了贝叶斯定理,就可以解决这类问题,计算公式如下: P(A)是A的先验概 ...

  7. Spring Boot 整合 xxl-job

    官方文档:https://www.xuxueli.com/xxl-job/ XXL-JOB 是一个分布式任务调度平台,其核心设计目标是开发迅速.学习简单.轻量级.易扩展.现已开放源代码并接入多家公司线 ...

  8. python_7 退出、结束循环和嵌套循环

    一.查缺补漏 1. end=' 任意值 ' 表示换行,任意值会显示在换行前,不写默认换行 2. input() 用户键盘输入 默认输入str类型,如要和int类型比较需要强制类型转换二.退出.结束循环 ...

  9. 今天能恢复我的Django吗——恢复了!

    今天能用两小时恢复我的Django吗 实在是累了,昨天和队友改bug的时候为了能在我的电脑上实现他的程序就在datagrip中删了我django建的表.没想到啊,这一删就全是报错!! 不说了,今天看看 ...

  10. 获取网络连接状态(二) IsNetworkAlive

    IsNetworkAlive需要服务System Event Notification的支持(系统默认自动启动该服务),且需要安装最新的SDK(如.NET) 浏览:MSDN对IsNetworkAliv ...