【Git】制造冲突以及解决冲突的详细方法

news/2024/5/19 2:06:41/文章来源:https://blog.csdn.net/weixin_60387745/article/details/130467326

介绍

这里是小编成长之路的历程,也是小编的学习之路。希望和各位大佬们一起成长!

以下为小编最喜欢的两句话:

要有最朴素的生活和最遥远的梦想,即使明天天寒地冻,山高水远,路远马亡。

一个人为什么要努力? 我见过最好的答案就是:因为我喜欢的东西都很贵,我想去的地方都很远,我爱的人超完美。因此,小编想说:共勉!

目录

一、为什么会发生冲突?

二、制造冲突

第一步:

第二步:

第三步: 在本地提交,并推送到远程仓库

第四步:发生冲突

三、解决冲突

方法一、在图形化界面中进行

第一步:先不点击拉取,将上述的框"×"掉,右击点击同步

第二步:出现冲突文件的标识

 第三步:查看本地的文件标识

第四步:右击,点击编辑冲突

第五步:优先使用右边的文件(也可以优先使用左边的文件,看实际情况的需要)

 第六步:当最下方那个框中没有红色的行,便代表没有冲突,进行保存​编辑

第七步:跳出弹窗,标记为解决

 第八步:冲突符号变更为已编辑的表示,进行提交,并推送到远程仓库

 第九步:完成

方法二、在命令行中进行

第一步:打开命令行

 第二步:提交文件 ,并发生了冲突

第三步:解决冲突

 在命令行中出现其他的报错信息的解决方法

报错一:

解决方法:

1.将所要push的内容所在的分支的protected权限关闭

2.新建其它分支,将项目push到新建的分支上,后期再进行merge

报错二:

报错三:(也就是本文报的错误)

报错四:

四、开发注意事项


一、为什么会发生冲突?


在gitee中创建文件或者在文件中修改代码,且在本地操作本地没有进行同步更新,就进行修改或者创建并且提交  就会发生冲突(相当与你和你同事前后修改了代码并提交,但是并没有在提交之前拉取进行更新)

注意:git与svn不同的是,svn自动会对比哪里出现了冲突,而git是要自己手动pull拉取更新之后才会进行对比并显示发生冲突的提示
 

二、制造冲突

第一步:

在gitee中编辑一个文件中的内容并提交,或者创建一个文件输入内容并提交,小编这里是编辑文件中的内容并提交

第二步:

在本地也编辑文件内容并提交,或者创建一个文件输入内容并提交,小编这里是编辑文件中的内容并提交

第三步: 在本地提交,并推送到远程仓库

第四步:发生冲突

这里只演示在本地的图形化界面进行冲突的制造,命令行也是同上步骤一样,在一个电脑或者文件夹、gitee中进行文件内容的编辑/创建文件输入内容并进行提交,如是在本地的图形化界面进行提交,还需要进行推送,将文件推送到远程仓库。然后在另一个电脑或者文件夹中进行文件内容的编辑/创建文件输入内容并进行提交,且推送到远程仓库。

三、解决冲突

方法一、在图形化界面中进行

第一步:先不点击拉取,将上述的框"×"掉,右击点击同步

第二步:出现冲突文件的标识

出现下面代表,文件被修改了,需要再次提交并推送

 

 第三步:查看本地的文件标识

冲突文件标识,下图中的黄色带感叹号三角形

第四步:右击,点击编辑冲突

 

第五步:优先使用右边的文件(也可以优先使用左边的文件,看实际情况的需要)

 第六步:当最下方那个框中没有红色的行,便代表没有冲突,进行保存

第七步:跳出弹窗,标记为解决

 

 第八步:冲突符号变更为已编辑的表示,进行提交,并推送到远程仓库

 第九步:完成

方法二、在命令行中进行

第一步:打开命令行

 第二步:提交文件 ,并发生了冲突

出现上面的 ! [rejected]        master -> master (fetch first)
error: failed to push some refs to 'https://gitee.com/。。。。

代表发生冲突

第三步:解决冲突

 在命令行中出现其他的报错信息的解决方法

报错一:

! [remote rejected] master -> master (pre-receive hook declined)

解决方法:

git push不上去的原因在于所push的分支权限为protected,只有项目的管理员或者项目的管理员指派的具有相应权限的人才能进行push,要进行项目的push,有如下两种方法:

1.将所要push的内容所在的分支的protected权限关闭

(1)进入所在项目的settings

(2)点击进入Protected branches,点击unprotected将master分支的权限改变,即关闭master的protected权限

2.新建其它分支,将项目push到新建的分支上,后期再进行merge

(1)新建分支

git branch 分支名

(2)切换分支

git checkout 分支名

(3)进行项目上传

git add .git commit -m "提交的信息"git remote add origin 远程仓库地址git push -u origin 分支名

具体请看下面文章

 git push解决办法: ! [remote rejected] master -> master (pre-receive hook declined) - cppeterpan - 博客园 (cnblogs.com)

报错二:

! [remote rejected] master -> master(non-fast-forward)

解决方法:

从提示语中可以看出是,问题(Non-fast-forward)的出现原因在于:git仓库中已经有一部分代码,所以它不允许你直接把你的代码覆盖上去。于是你有2个选择方式:

1、强推,即利用强覆盖方式用你本地的代码替代git仓库内的内容,如果远程仓库是刚建的,没有代码,可以这样操作,尽量避免这种操作方法。

git push -f

2、先把git的东西fetch到你本地然后merge后再push

$ git fetch
$ git merge

3、在使用的时候,git merge,又出现了以下的问题

  1. git merge

  2. fatal: refusing to merge unrelated histories

对于这个问题。使用git pull origin master --allow-unrelated-histories
来处理一下。

4、然后继续git merge,依然有问题

  1. fatal: You have not concluded your merge (MERGE_HEAD exists).

  2. Please, commit your changes before you merge.

这个就好处理了,是我们没有提交当前的变化, git add .,git commit -m "提交信息"

然后再来一次git merge,然后ok.

5、然后输入git pull,显示如下

Already up-to-date.

最后就可以执行git push origin master

报错三:(也就是本文报的错误)

! [rejected]        master -> master (fetch first)

解决方法:

git pull --rebase origin mastergit push -u origin master

报错四:

git add .
git push origin master

出现了这样的问题 everything up-to-date

原因:git提交改动到缓存,要push的时候不会将本地所有的分支都push掉,所以出现这个问题。那么我们就需要新建分支提交改动然后合并分支。

1.先创建一个新的分支提交改动
$ git branch newbranch

2.检查这条命令是否创建成功
$ git branch

这时终端会输出:

newbranch

*master

这样就创建成功了,前面的*代表的是当前你所在的工作分支,接下来就要切换工作分支。

3.git checkout newbranch
4.然后将你的改动提交到新的分支上
$ git add .

$ git commit -m "提示消息"

此时可以$ git status 检查下提交情况。如果提交成功,我们接下来就要回主分支了,$ git checkout master

5.我们将新分支提交的改动合并到主分支上
$ git merge newbranch

合并分支可能产生冲突这是正常的,虽然我们这是新建的分支不会产生冲突,但还是在这里记录下。可以用

$ git diff 来查看产生冲突的文件,然后做对应的修改再提交一次就可以了。

6.我们的问题解决了,接下来就可以push代码了
$ git push -u origin master

7.最后,新建分支的朋友别忘了删除分支
$ git branch -D newbranch

如果想保留分支只是想删除已经合并的部分只要把大写的D改成小写的d就行了。

 冲突中文件的代码:

四、开发注意事项

  • 代码需要备份【主要是防止代码丢失】
  • 每个大版本都需要备份支持【主要是1.0出现问题时,不能在2.0的版本上修复】
  • 每天上午上班,要从服务器下载最新的代码到本地
  • 每天下午下班前,把自己的代码提交到服务器(一定是测试过,没有问题的代码)
  • 团队开发时需要解决文件冲突问题

以上就是小编所实践的内容,希望能够帮助到大家,感谢各位大佬的观看!!!

参考资源:

如何解决git上传文件出错[rejected] master -> master (fetch first) error: failed to push some refs to '_way-up的博客-CSDN博客https://blog.csdn.net/weixin_43264399/article/details/87350219

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_484536.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

编译原理笔记(一)引论

文章目录 1.什么是编译程序2.编译过程和编译程序的结构2.1.编译过程概述2.2.编译程序的结构2.3.编译阶段的组合 3.解释程序和一些软件工具3.1.解释程序3.2.处理源程序的软件工具 4.PL/0语言编译系统 学习总结:这一部分是编译原理的绪论部分内容,对编译程…

神经网络结构搜索NAS

推荐课程:神经网络结构搜索 感谢博主ShusenWang提供的课程讲解! 目录 1. 为什么要学习神经网络结构搜索NAS? 2. 什么是神经网络结构搜索NAS? (1)随机搜素Random Search 1. 为什么要学习神经网络结构搜…

漫天花雨HTML特效+3D相册

大家好,我是csdn的博主:lqj_本人 这是我的个人博客主页: lqj_本人的博客_CSDN博客-微信小程序,前端,python领域博主lqj_本人擅长微信小程序,前端,python,等方面的知识https://blog.csdn.net/lbcyllqj?spm1011.2415.3001.5343哔哩哔哩欢迎关注…

or-tools 应用案例分析:复杂作业车间调度问题

作业调度问题是常见的线性规划(整数规划)问题,其中多个作业在多台机器上处理。每个作业由一系列任务组成,这些任务必须按给定的顺序执行,并且每个任务都必须在特定的机器上处理。如何有效的利用所有的机器在最短的时间内完成所有的作业任务&a…

调试别人的API,一般有哪些步骤?

当我们使用了一些由别人实现的API接口时,该如何进行调试呢?当我们使用的API返回一些意想不到错误时,该怎么办呢?这个问题可能是由于用户输入或者API本身,或者其他完全无关的内容等引起的。调试是我们进行定位并修复由单个API调用…

[杂谈]从《天堂2》到永恒之塔私服的感慨

不才在下是个老丫头了,平时喜欢潜水,还是在玩激战时注册的多玩论坛号,也不怎么说话,都是看别人说得多(害羞嘛……)。 想当年《天堂二》内测时,刚好在成都开了个内测号 首发会,我大清…

Linux 五种网络IO模式(阻塞IO、非阻塞IO、IO多路复用、信号驱动IO、异步IO)

Linux网络编程中,有五种网络IO模式,分别是阻塞IO、非阻塞IO、IO多路复用、信号驱动IO、异步IO; 虽然说不能全都认识得很透彻,但至少得都知道一点! 开始之前,先了解以下同步IO和异步IO; 1. 同步…

linux0.12-8-4-sys_call.s

[301页] 8-4 sys_call.s 程序 sys_call.s 程序简单总结: int 0x80 – _system_call int16 – 处理器错误中断 int7 – 设备不存在或协处理器不存在。 int32 – (int 0x20)时钟中断处理程序。 两个系统功能的底层接口,分别是 sys_execve 和 sys_fork 。…

【JVM】面试题总结

JVM 1、JVM 的运行时内存区域是怎样的2、堆和栈的区别3、Java 中的对象一定在堆上分配内存吗4、什么是 Stop The World5、JVM 如何判断对象是否存活6、JVM 有哪些垃圾回收算法7、什么是三色标记算法8、新生代和老年代的GC算法9、新生代和老年代的垃圾回收器有何区别10、Java 中…

MYSQL用户组管理

1:使用明文密码创建用户 使用密文密码创建用户 1.2 查看用户信息 1.3 重命名用户 rename 1.4 删除用户信息 drop 1.5 修改当前登录用户的密码 set password password(123456); 1.6 修改其他用户的密码 set password for nancylocalhost password(abc123); 1.7…

电子价签能给生鲜零售带来什么?

生鲜零售 变价难 超市中的水果、蔬菜、鱼肉海鲜等商品,往往会受季节变化、运输和储存成本、自然环境引起的生产成本、供需关系等因素影响,其商品价格变动比较频繁。如不能及时更新价格,容易影响商品的销售,进而影响超市的盈利能…

【致敬未来的攻城狮计划】第2期定向赠书《RT-Thread设备驱动开发指南》+ 《GD32 MCU原理及固件库开发指南》

开启攻城狮的成长之旅!这是我参与的由 CSDN博客专家 架构师李肯(超链接:http://yyds.recan-li.cn)和 瑞萨MCU (超链接:瑞萨电子 (Renesas Electronics Corporation)) 联合发起的「 致敬未来的攻…

测试用例覆盖不全面的解决方法

测试用例覆盖不全面的解决方法 问题分析 在测试用例设计过程中,容易出现思维受限或者需求盲区,我们不可能完全覆盖用户使用的所有场景,编写测试用例的时不可能把所有的场景都能想周全,把所有的场景下的情况都写成测试用例去模拟、…

儿童书写台灯哪个牌子比较好?盘点护眼学生用台灯品牌排行

想要拥有一个健康的视力对于我们多么重要,日常生活多么不便利,就是像家里孩子考学时视力也是对于未来专业选择的一个阻碍。 想要孩子不吃近视的苦,从小就要开始抓孩子对于视力和眼睛的呵护。 养成好习惯必须保持一个正确的学习姿势&#xff…

基于pytorch+transformers的车牌识别

目录 程序流程设计熟悉训练数据集CCPD2019数据集CCPD数据集标注信息单例再现 加载本地车牌数据集 程序流程设计 1,熟悉训练数据集; 2,加载本地车牌数据集; 3,定义网络模型; 4,输入数据集训练模…

Baumer工业相机堡盟工业相机如何联合BGAPISDK和Halcon实现图像的线性灰度变换ScaleImage算法增强(C#)

Baumer工业相机堡盟工业相机如何联合BGAPISDK和Halcon实现图像的线性灰度变换算法增强(C#) Baumer工业相机Baumer工业相机使用图像算法增加图像的技术背景Baumer工业相机通过BGAPI SDK联合Halcon使用线性灰度变换增强算法1.引用合适的类文件2.BGAPI SDK在…

「STC8A8K64D4开发板」——外部中断(INT0~INT4)

第2-4讲:外部中断(INT0~INT4) 学习目的学习中断的相关概念。掌握外部中断配置及中断优先级配置的程序设计。掌握中断服务程序的编写。 中断相关概念 什么是中断 中断系统是为使 CPU 具有对外界紧急事件的实时处理能力而设置的。 CPU在处理某一事件A时&#xff0c…

基于YOLOv5的儿童睡眠检测

注意: 由于SOPHGO SE5微服务器的CPU是基于ARM架构,部分步骤将在 基于x86架构CPU的开发环境中完成 一、初始化开发环境(基于x86架构CPU的开发环境中完成) 二、模型转换 (基于x86架构CPU的开发环境中完成) 三、YOLOv5模型部署测试(在SOPHGO SE5…

超细Redis(一)

目录 概述 Redis是什么? Redis能干嘛? 特性 如何学习 Linux安装 测试性能 概述 Redis是什么? Redis (Remote Dictionary Server),即远程字典服务 是一个开源使用ANSI C语言编写、支持网络、可基于内存亦可持…

【SVN】版本控制管理的文件(夹)如何重命名

目录 一、前言二、操作步骤1. 使用SVN重命名(SVN rename)2. 输入新名称3. 确定重命名4. 立刻进行一次提交(commit)5. 补充 三、可能遇到的问题1. 情况一2. 情况二3. 情况三 一、前言 如果只是在本地的文件系统中修改SVN中的文件&a…