Git SourceTree Please, commit your changes or stash them before you can merge.

2023-11-07

现在程序猿标配GIT作为代码管理,但是从SVN到GIT学习中,其中GIT的冲突是一个难点,常常会导致Push不上去,Pull不下来,很尴尬的地步,还不知道自己写的代码被覆盖没,废话不多说,直接上干货!


亮点

采用SourceTree插件BeyondCompare 可视化解决冲突

方法

构造冲突

  • A 修改了conflict.file 中第1行内容并且提交到git上

  • B 这个时候也修改了confilct.file中第一行内容准备提交,这个时候git就会提示

To git@192.168.x.xxx:xxx/server-aggregator.git
 ! [rejected]        develop -> develop (fetch first)
error: failed to push some refs to 'git@192.168.xx.xx:xxx/server-aggregator.git'

hint: Updates were rejected because the remote contains work that you do
hint: not have locally. This is usually caused by another repository pushing
hint: to the same ref. You may want to first integrate the remote changes
hint: (e.g., ‘git pull …’) before pushing again.
hint: See the ‘Note about fast-forwards’ in ‘git push --help’ for details.

提示远程已经有更新了,本地版本太低,让我们先pull拉取最新的代码。


  • 我们pull一下,这个时候由于本地有修改这个文件,就会在本地产生冲突文件



配置外部比较工具


  • 下载Beyond Compare

  • 打开SourceTree->工具->选项->比较->外部差异对比合并->选择BeyondCompare


解决冲突


  • 在本地副本->右键->解决冲突->打开外部合并工具

  • 和svn一样解决好冲突保存更改,退出即可


另外一种情况


  • 拉取时出现如下提示:


it -c diff.mnemonicprefix=false -c core.quotepath=false pull local-server-aggregator develop
/opt/gitlab/embedded/service/gitlab-shell/bin/gitlab-shell:3: warning: Insecure world writable dir /usr in PATH, mode 040777
From 192.168.0.200:weitoo/server-aggregator
  • branch develop -> FETCH_HEAD
    Updating b0c5c94…40cef3b
    error: Your local changes to the following files would be overwritten by merge:
    server/conflict.file
    Please, commit your changes or stash them before you can merge.
    Aborting

    提示需要暂存本地修改,才能拉取服务器上新的代码

    • 点击贮存(英文版:Stash),随便起一个名字,里面存的都是距离上次服务器版本到本地修改之间的差异,千万别删掉了,合并成功无误了再删掉。

    • pull拉取服务器代码,这个时候,本地的代码变成了服务器上的代码。

    • 点击贮藏->应用贮藏区 ,这个时候是把之前的修改合并到本地上,这个时候会提示冲突。

    git -c diff.mnemonicprefix=false -c core.quotepath=false stash apply stash@{
        
        0}
    

Auto-merging server/conflict.file
CONFLICT (content): Merge conflict in server/conflict.file

可以在sourcetree里看到有感叹号,代表冲突文件,和上面解决冲突方法类似,但是稍微不同,最左边成了远程版本,中间为远程上一个版本,最后才是本地修改。
这个是和我们操作方式有关:我们是先暂存本地修改,先拉取远程代码,这个时候local 就成了远程代码,最后我们用暂存的合并进去,remote就成了本地修改




多余的.orig文件


这个是由于git自身造成的 它会解决冲突后 生成一个原来冲突的备份,我们可以去掉


git config --global mergetool.keepBackup false


原文出处 : http://mousycoder.com/2015/10/14/git-source-conflict-reslove-solution/


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Git SourceTree Please, commit your changes or stash them before you can merge. 的相关文章

随机推荐

  • Map 和 Set 使用的区别和联系(建议收藏)

    我是目录 1 搜索 1 概念及场景 2 模型 2 Map 的使用 3 Set 的使用 表现 两个接口 Set 和 Map 接口 1 搜索 1 概念及场景 Map 和 set 是一种专门用来进行 搜索的容器 或者 数据结构 其搜索的效率与其具
  • 用递归求斐波那契数列

    2137 斐波那契数列 时间限制 1 Sec 内存限制 128 MB 提交 2116 解决 2242 提交 状态 讨论版 命题人 lym 题目描述 斐波那契数列 Fibonacci sequence 又称黄金分割数列 兔子数列 是数学家列昂
  • MyBatis-Plus:条件构造器Wrapper

    目录 1 Wrapper概述 1 1 Wrapper的继承关系 1 2 Wapper介绍 1 3 各个构造器使用区别 1 4 构造器常用方法 2 Wrapper常用构造器介绍 2 1 QueryWrapper 2 2 UpdateWrapp
  • 无向图的邻接矩阵与邻接表详细实现

    无向图的邻接矩阵 通过用邻接矩阵来表示无向图 如下无向图G1的邻接矩阵 无向图G1包含了 A B C D E F G 共七个顶点 而且包含了 A C A D A F B C C D E G F G 共七条边 由于这是无向图 所以 A C 和
  • Linux命令awk

    文章目录 Linux命令awk 1 搜索 etc passwd文件以root关键字开头的所有行 并输出该行的第7列 2 搜索 etc passwd文件以root关键字开头的所有行 并输出第1列 第6列 第7列 以逗号分隔 3 只显示 etc
  • PPT架构师架构技能图

    PPT架构师架构技能图 目录 概述 需求 设计思路 实现思路分析 1 软素质 2 核心输出 office输出 参考资料和推荐阅读 Survive by day and develop by night talk for import biz
  • 强智教务管理系统爬虫难关1

    强智教务系统的登录页面有个验证码 为了自动化和简单化 采用了联众答题模块 自动识别和验证 下面是我的点数 说明已经可以自动识别验证码并且可以使用了 当然 这个没有什么难度 今天解决的是账号密码加密问题 这个是我抓到的包 很显然 账号密码进行
  • Pyqt5 圆角窗口

    之前了解了通过样式表和绘画的方式 都感觉不太靠谱 样式表无法生效 绘画又会影响定义的其它窗口样式 后来发现还是setMask靠谱 def setMask self args setMask self QBitmap setMask self
  • 大端模式和小端模式

    一 什么是大端 什么是小端 0x123456在内存中的存储方式 大端模式 低地址 gt 高地址 0x12 0x34 0x56 小端模式 低地址 gt 高地址 0x56 0x34 0x12 不难看出大端模式比较符合人的直观认识 二 为什么会有
  • C++运算符重载总结

    一 C 操作符重载的意义 1 当运算符作用于类类型的运算对象时 可以通过运算符重载重新定义该运算符的含义 2 在模板编程实现的泛型编程中 对不同类型实现相同的语义 各自类通过操作符重载实现对应语义 例如 由模板类自己定义大小关系 FUNCT
  • 提升手机拍摄能力以满足用户社交需求,是个伪命题?

    本周话题 网上看到一个话题 分享给大家 目前各大厂商提升手机拍摄能力是为了满足用户社交需求 这是否是个伪命题 在所谓的社交满足感方面 拍照真的也许还不如微博手机型号的小尾巴 或是吃饭时把手机在桌扣过来露出的浴霸摄像头 18年款和19年款的手
  • [LeetCode] 7.整数反转 c++

    给你一个 32 位的有符号整数 x 返回将 x 中的数字部分反转后的结果 如果反转后整数超过 32 位的有符号整数的范围 2 31 2 31 1 就返回 0 假设环境不允许存储 64 位整数 有符号或无符号 输入 x 123 输出 321
  • QComboBox 中 activated信号与 currentIndexChanged信号的区别;及 items count,基本用法

    QComboBox中activated信号与currentIndexChanged信号的区别 QT ComBoBox的基本方法 int cnt ui gt comboBox abc gt maxCount int cntxx ui gt c
  • 【华为OD统一考试B卷

    华为OD统一考试A卷 B卷 新题库说明 2023年5月份 华为官方已经将的 2022 0223Q 1 2 3 4 统一修改为OD统一考试 A卷 和OD统一考试 B卷 你收到的链接上面会标注A卷还是B卷 请注意 根据反馈 目前大部分收到的都是
  • C/C++ 数据类型

    在C语言中 数据类型指的是用于声明不同类型变量或者函数的一个广泛的系统或者抽象 变量类型决定了变量存储占用的空间 以及如何解析存储的位模式 也是说 1 数据类型可以理解为固定内存大小的别名 2 数据类型是创建变量的模子 具体使用哪种磨具 包
  • C# 位运算

    程序中的所有数在计算机内存中都是以二进制的形式储存的 位运算就是直接对整数在内存中的二进制位进行操作 比如 and运算本来是一个逻辑运算符 但整数与整数之间也可以进行and运算 举个例子 6的二进制是110 11的二进制是1011 那么6
  • 用R获取芯片探针与基因的对应关系三部曲-bioconductor

    用R获取芯片探针与基因的对应关系三部曲 bioconductor 现有的基因芯片种类不要太多了 soft和miniml都是表示该platform的基础信息 比如GPL编号 上传日期等 soft文件的部分内容如下 但是重要而且常用的芯片并不多
  • Win10问题篇:解决电脑连不上网的问题。

    今天 我的电脑突然连不上网 电脑管家说IP地址错误 网络无法联通 今天我对这个问题系统的分析一下 首先排除网卡驱动的问题 第一 百度驱动精灵万能网卡版 下载到手机上 然后再由手机传到电脑安装 里面有安装网卡驱动这一选项 不过一般都不是网卡驱
  • [机缘参悟-78]:深度思考-职场中注意事项与大忌-员工版

    目录 第1篇 做事 风格 习惯 展现自己的能力不够 1 1 做事喜欢拖拉 办事效率低 1 2 领导交代任务时 急于说 我懂了 我知道了 1 3 汇报工作时经常使用 可能 也许 大概 1 4 遇到问题时 撇开责任 1 5 默默做事 不向领导表
  • Git SourceTree Please, commit your changes or stash them before you can merge.

    GIT SourceTree冲突 解决方案 收藏 现在程序猿标配GIT作为代码管理 但是从SVN到GIT学习中 其中GIT的冲突是一个难点 常常会导致Push不上去 Pull不下来 很尴尬的地步 还不知道自己写的代码被覆盖没 废话不多说 直