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


* 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. springboot--配置格式文件

    修改端口号的三种方法 1.server.port = 80 2.新建application.yml文件. 3.新建application.yaml文件. 配置文件加载顺序: 当三个文件都存在时prop ...

  2. idea application.properties图标显示异常(无小树叶)

    项目中(多级模块)如果没有主启动类时,新建的application.properties文件显示图标是文本格式图标,就如第一张图所示 添加该项目该模块下主启动类,就可以解决图标显示问题,也就可以看到可 ...

  3. golang pprof监控系列(2) —— memory,block,mutex 使用

    golang pprof监控系列(2) -- memory,block,mutex 使用 大家好,我是蓝胖子. profile的中文被翻译轮廓,对于计算机程序而言,抛开业务逻辑不谈,它的轮廓是是啥呢? ...

  4. rocketmq-spring : 实战与源码解析一网打尽

    RocketMQ 是大家耳熟能详的消息队列,开源项目 rocketmq-spring 可以帮助开发者在 Spring Boot 项目中快速整合 RocketMQ. 这篇文章会介绍 Spring Boo ...

  5. day04-SpringCloud Eureka-服务注册与发现01

    SpringCloud Eureka-服务注册与发现01 1.Eureka介绍 1.1学习Eureka前的说明 目前主流的服务注册&发现的组件是 Nacos,但是 Eureka 作为老牌经典的 ...

  6. 使用二进制方式安装Docker

    长期使用安装工具进行安装docker,今天用二进制方式手动安装一下docker环境. 二进制包下载地址:https://download.docker.com/linux/static/stable/ ...

  7. 基于RL(Q-Learning)的迷宫寻路算法

    强化学习是一种机器学习方法,旨在通过智能体在与环境交互的过程中不断优化其行动策略来实现特定目标.与其他机器学习方法不同,强化学习涉及到智能体对环境的观测.选择行动并接收奖励或惩罚.因此,强化学习适用于 ...

  8. python工程师-day83

    1.drf 的用户认证组件 (1)models from django.db import models# Create your models here.class User(models.Mode ...

  9. “结巴”中文分词:做最好的 Python 中文分词组件

    jieba "结巴"中文分词:做最好的 Python 中文分词组件 "Jieba" (Chinese for "to stutter") C ...

  10. go测试库之apitest

    前言 使用go语言做开发差不多快一年了,主要用来写后端Web服务,从一开始吐槽他的结构体,比如创建个复杂的JSON格式数据,那是相当的痛苦.还有 err 处理写的巨麻烦. 当然,go 也有爽的地方,创 ...