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

news2024/11/23 11:18:04

介绍

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

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

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

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

目录

一、为什么会发生冲突?

二、制造冲突

第一步:

第二步:

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

第四步:发生冲突

三、解决冲突

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

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

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

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

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

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

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

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

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

 第九步:完成

方法二、在命令行中进行

第一步:打开命令行

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

第三步:解决冲突

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

报错一:

解决方法:

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 master

git 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.coloradmin.cn/o/490468.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

CentOS安装Redis数据库流程by阿里云服务器

使用阿里云服务器ECS安装Redis数据库流程,操作系统为CentOS 7.6镜像,在CentOS上安装Redis 4.0.14,云服务器选择的是持久内存型re6p实例,新手站长分享阿里云CentOS服务器安装Redis流程方法: 目录 在CentOS系统中部署R…

2023-05-04 线性DP_力扣练习

线性DP的力扣题目练习 这一章将会介绍线性动态规划的相关概念和经典问题,并给出一些练习题供大家演练。 用动态规划解决问题的过程有以下几个关键点:状态定义,状态的转移,初始化和边界条件。 状态定义 就是定义子问题&#xff…

【IM苹果推iMessage】苹果真机推送自动分配任务,自动分配任务,让您瞄准中高端客户

推荐内容IMESSGAE相关 作者✈️IMEAE推荐内容iMessage苹果推软件 *** 点击即可查看作者要求内容信息作者✈️IMEAE推荐内容1.家庭推内容 *** 点击即可查看作者要求内容信息作者✈️IMEAE推荐内容2.相册推 *** 点击即可查看作者要求内容信息作者✈️IMEAE推荐内容3.日历推 *** …

代码命名规范的套路是真优雅呀,命名如歌,代码如诗

日常编码中,代码的命名是个大的学问。能快速的看懂开源软件的代码结构和意图,也是一项必备的能力。那它们有什么规律呢? Java项目的代码结构,能够体现它的设计理念。Java采用长命名的方式来规范类的命名,能够自己表达…

ansible常用命令

目录 1、列出默认清单文件中的所有受管主机 2. 列出自定义清单文件中的所有受管主机(自定义清单文件:inventory) 3、运行playbook 4、创建需要输入文件密码的加密的文件 5、创建用密码文件的加密的文件 6、查看加密的文件内容 7、向已有…

学会使用Git,看这一篇文章就够了

文章目录 一、背景二、Git的安装2.1 Windows下安装Git:下载安装包安装Git配置Git 2.2 Linux下安装Git:更新系统安装Git配置Git 三、Git 基本使用3.1 初始化 Git 仓库3.2添加文件3.3 提交代码3.4 查看历史记录3.5创建分支3.6 修改文件3.7 查看文件状态3.8…

【实用工具】JSR-269 插入式注解处理器AbstractProcessor

JSR-269原理浅析 初次使用lombok时,都需要在idea安装lombok插件,这让我们怀疑lombok的实现是通过提供自己的编译器实现的,然而实际情况并非如此,在脱离idea使用javac编译时,只要类路径有lombok的jar包,项目…

Android-源码分析-分析手机热点里的AP Band(频段)被隐藏/置灰的原因?

本博文记录寻找手机热点中AP Band(频段)被隐藏/置灰的原因,相似问题同理去查找解决。 先放上一张MTK平台手机-热点-AP Band界面效果图: 很明显,界面中的AP Band选项变灰,无法点击编辑修改内容,如果是AP Band 被隐藏或…

C#,生信软件实践(01)——DNA序列数据库FASTA文件合并工具的源代码

1 生物信息学简介 生物信息学(BioInformatics)是研究生物信息的采集、处理、存储、传播,分析和解释等各方面的学科,也是随着生命科学和计算机科学的迅猛发展,生命科学和计算机科学相结合形成的一门新学科。它通过综合…

JavaWeb ( 四 ) JavaEE

2.JavaEE 2.1.Java版本 J2SE : 适用于桌面系统的Java 2平台标准版(Java 2 Platform Standard Edition,J2SE) J2EE : 适用于创建服务器应用程序和服务的Java 2平台企业版(Java 2 Platform Enterprise Edition,J2EE&a…

学企业管理

工业社会的代表产品是交通运输设备,如火车/高铁、汽车、飞机/火箭、船舶/航母,其核心是发动机。信息社会的代表产品是计算设备,如大型机小型机、工作站/PC台式机电脑/PC笔记本电脑/PC平板电脑、智能手机。 汽车这个产品,既属于高精…

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

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

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

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

软件工程期末复习(背题家速成)

文章目录 前言一、选择题1、第一章 软件工程综述2、第二章 软件过程3、第三章 可行性研究4、第四章 结构化需求分析5、第五章 结构化软件设计6、第六章 面向对象的需求分析7、第七章 第7章面向对象设计8、第八章 基于构件的开发9、第九章 软件项目的测试10、第十章 软件实施、维…

每天一道算法练习题--Day2 第一章 --算法专题 --- ----------位运算

我这里总结了几道位运算的题目分享给大家,分别是 136 和 137, 260 和 645, 总共加起来四道题。 四道题全部都是位运算的套路,如果你想练习位运算的话,不要错过哦~~ 前菜 开始之前我们先了解下…

Umi 插件实战教程

引言 笔者最近开发了一款 umi 插件:plugin-umi-cmdk[1],该插件的功能主要是:在 umi 项目里可以方便的集成 cmd k ,实现菜单等搜索。 主体功能并不复杂,但是在集成作为 umi 插件过程中踩了不少坑,主要是 umi 官方文档的…

【计算机网络】面试高频问题汇总及详细解答

【C语言部分】面试高频问题汇总及详细解答 【操作系统(Linux)】面试高频问题汇总及详细解答 【数据库】面试高频问题汇总及详细解答 本文目录 1. 简述网络七层参考模型及每一层的作用2. 简述静态路由和动态路由3. 说说有哪些路由协议,都是如何更新的4. 简述域名解析…

PostgreSQL Explain 复杂执行计划怎么看 --- 逐个分解PG执行计划的那些操作

开头还是介绍一下群,如果感兴趣polardb ,mongodb ,mysql ,postgresql ,redis 等有问题,有需求都可以加群群内有各大数据库行业大咖,CTO,可以解决你的问题。加群请联系 liuaustin3 ,在新加的朋友会分到2群(共…

Codeforces-Round-805-Div-3-E-Split-Into-Two-Sets

title: Codeforces Round 805 (Div. 3) E. Split Into Two Sets date: 2023-04-25 18:14:41 categories: AlgorithmCodeforces tags:codeforces并查集1600 E. Split Into Two Sets 题目大意 给你n组数,每组里面有两个数字,问你能不能把这n组数分为两组…

【数据架构系列-06】一文搞懂数据模型的3种类型——概念模型、逻辑模型、物理模型

数据模型就是模拟现实世界的方法论,是通向智慧世界的基石! 从现实世界发展到智慧世界,要数经历现实世界、信息世界、计算机世界、数据世界、智慧世界五个不同的世界,我们天生具有从混沌的世界抽象信息变为信息世界的能力&#xff…