git冲突解决,使用git命令解决冲突【通用版】

news/2024/5/17 15:16:02 标签: git, gitlab, 冲突, git冲突解决, gitee

文章目录

    • 一、准备
      • 1-1、dev分支里面的README
      • 1-2、master分支里面的README
      • 1-3、说明
    • 二、冲突
      • 2-1、合并结果
      • 2-2、解决冲突一(有master分支操作权限)
        • 2-2-1、更新远程分支
        • 2-2-2、切换master分支、并拉取master分支代码
        • 2-2-3、拉取dev分支代码(当前分支是master)
        • 2-2-4、解决冲突
        • 2-2-5、提交代码
      • 2-3、解决冲突二(无master分支权限)
        • 2-3-1、更新远程分支
        • 2-3-2、切换dev分支、并拉取dev分支代码
        • 2-3-3、拉取master分支代码(当前是dev分支)
        • 2-3-4、解决冲突
        • 2-3-5、提交代码
    • 三、其它

从接触git到现在大概有三年之久了,也使用它工作一年之久,但直到写这篇文章之前,依旧对它的 冲突很恐惧。

而现在只能算是说麻烦,不能算是说恐惧了,下面就把我目前对git冲突解决经验传授给大家。


一、准备

这里主要是讲怎么解决冲突,所以对于其它的尽量能少则少。

使用gitee创建一个项目,项目初始有一个README.MD和两个分支devmaster


1-1、dev分支里面的README

TEST- dev

1-2、master分支里面的README

TEST- master

1-3、说明

两个分支同一个文件里面的代码不一样,如果合并就会冲突

现在我们就来合并分支 dev > master


二、冲突

2-1、合并结果

在这里插入图片描述

此 Pull Request 无法自动合并,你应该手动合并它

注:实际我们多用的是gitlab,上面的英文翻译一下大意也是如此。


解决冲突的步骤:

  1. 把两个分支的代码都拉到你本地
  2. 手动去把代码整合一下
  3. 提交你的本地代码

2-2、解决冲突一(有master分支操作权限)

如果你有master分支的权限,你可以使用这个办法。

一般冲突后会提示你解决的办法,也是此办法。


2-2-1、更新远程分支

这一步一般不做,大部分这两个分支本地都有,但是可能出现没有的情况,所以运行一下也没什么关系。

git fetch

2-2-2、切换master分支、并拉取master分支代码

git checkout master
git pull origin master

2-2-3、拉取dev分支代码(当前分支是master)

git pull origin dev

2-2-4、解决冲突

这个时候你的本地代码会如下:

在这里插入图片描述

我们按照正确的代码格式,把本地代码整理成如下

在这里插入图片描述

2-2-5、提交代码

# 添加全部的文件,这里为了演示方便,你可以添加具体的文件
git add .
# 提交代码到本地仓库
git commit -m '解决冲突'
# 提交代码到线上仓库
git push origin master

提交到线上后,我们的那个分支合并,也会自动合并好了。


2-3、解决冲突二(无master分支权限)

  • 实际开发中我们很可能没有这个分支的提交权限,我们只能拉取代码。

使用上面的方式再来重新制造一个冲突

在这里插入图片描述

其实原理是一样的,之前我们是在master分支上解决冲突,现在我们在dev分支上去解决冲突


2-3-1、更新远程分支

这一步一般不做,大部分这两个分支本地都有,但是可能出现没有的情况,所以运行一下也没什么关系。

git fetch

2-3-2、切换dev分支、并拉取dev分支代码

git checkout dev
git pull origin dev

2-3-3、拉取master分支代码(当前是dev分支)

git pull origin master

2-3-4、解决冲突

如上面一样,按照自己正确的代码进行调整


2-3-5、提交代码

# 添加全部的文件,这里为了演示方便,你可以添加具体的文件
git add .
# 提交代码到本地仓库
git commit -m '解决冲突'
# 提交代码到线上仓库
git push origin dev

这时候合并请求便会如下:

在这里插入图片描述

这个意思是现在已经没有冲突了,但是你没权限合并,找有权限的人给你合并。


三、其它

  • 这里的dev分支代表你的开发分支,master分支标识要合并的分支
  • 我这里使用的gitee提示都是中文的,如果你使用gitlab提示是英文的,大意都是一样的
  • 如果你没有合并权限的时候可能会出现合并冲突没有需要合并的找有权限的人给你合并,记得翻译一下英文,不然可能闹出笑话。
  • 如果你明白了上面的含义,实际上遇到冲突了只可能是冲突文件比较复杂会难得处理,但不会手足无措。
  • 我这里为了通用性都是使用的git命令,实际开发大家可以结合具体的软件(IDEAVSCODE)可能会更简单。

http://www.niftyadmin.cn/n/774903.html

相关文章

月薪10k-20k都无法回答的事务问题,你会吗?

今天朋友扔来一个“简单”的事务代码,初看无味,再看惊奇。 也问了身边的一些朋友无一人回答正确,你也试试? Service public class TestService {Autowiredprivate TestMapper testMapper;Autowiredprivate TestServiceTwo testS…

ConcurrentHashMap之put源码阅读

ConcurrentHashMap之所以是安全的map就是因为它在put的时候进行了锁处理,下面是整个put的过程,基本上都写了注释,看完之后可以帮助你更好的理解它的原理。 关于ConcurrentHashMap的其它源码,比如扩容、计数器等,看看以…

幂等性实践操作,基于业务讲解幂等性

之前面试也提到过关于幂等的问题,自己百度查了关于它的概念倒是很简单,但就一直不是很理解,今天和人讨论一下,然后再自己结合实际理解了一下。 幂等概念来自数学,表示N次变换和1次变换的结果是相同的。这里讨论在某些场…

场景题:A系统如何使用B系统的页面

大多数我们的系统都是独立的,即便是A、B系统有所交互那也是数据层的交互,用接口调用的方式就满足了,但最近接到了这样的一个需求。 A系统新增一个按钮,点击打开B系统的B.B页面,从B系统直接去B.B页面,会比从…

超好用的【通用Excel导入功能】

文章目录一、需求1-1、下载模板(excel)1-2、数据填充并导入1-3、导入结果展示1-4、数据校验规则二、方案思路三、代码使用3-1、新建一个VO,比如你导入的字段是 name、age、gender 那么你的实体应该如下:3-2、新增一个ImportExcel接口的实现类&#xff0c…

超好用的Excel异步导出功能

之前也做过关于Excel的导出案例,此次也是在其基础上进行改造升级: https://www.bilibili.com/video/BV1kf4y1i761?p5 但是之前的导出存在这么几个问题: 如果是数据量很大容易导致页面卡死(我曾导出30w条数据,直接…

MySQL索引详解【B+Tree索引、哈希索引、全文索引、覆盖索引】

前段时间面试每次提到索引,我就巴拉巴拉说一堆,然后到了说说你理解的 Btree索引我就懵逼了。 直接说Btree可能并不是很好理解,下面我们从最简单的二叉查找树开始慢慢循序渐进。 一、BTree索引 1、二叉查找树 在最开始学习树的时候&#xf…

docker内安装vim、E: Unable to locate package vim、Could not connect to deb.debian.org:80

一 今天想在docker里面修改下MySQL的配置文件,使用 vim命令,发现没有。 二 按照网上的办法,运行下面两个命令,结果报错 Could not connect to deb.debian.org:80 apt-get update apt-get install -y vim看错误是说链接不上这个…