Git遇到冲突?解决也太简单了

这篇具有很好参考价值的文章主要介绍了Git遇到冲突?解决也太简单了。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

程序员宝藏库:https://gitee.com/sharetech_lee/CS-Books-Store

git冲突是开发过程中很难避免的,对很多git初学者来说也是比较有障碍和门槛的一部分知识。

我认为要想彻底理解一个问题,首先要清楚这个问题是怎么产生的,然后才可以更加简单的解决这个问题,而且这样做还可以从根本上加深对git的用法理解,避免每次遇到时都需要反反复复的搜索答案。

下面就逐步的介绍一下,帮助大家彻底理解什么是合并冲突?如何解决合并冲突?

什么是Git合并?什么是合并冲突?

首先,Git 是一个版本控制系统,可以保存所有文件版本的历史记录。 开发者可以随时回退到任何版本并检索旧版本。

假设,创建了一个名为 abc.txt 的文件并将其推送到 Git 仓库。 此时,该文件具有与其关联的当前版本。 现在,如果你的同事更改了同一个文件并将其推回仓库,则该文件关联了一个新版本。

Git Merge 是一项功能,可让使文件的当前内容与其他先前版本保持同步。 换句话说,Git 合并可帮助你在将新更改推送到同一文件之前合并来自其他开发人员的更改。

git 冲突,工具,Github,开发,git,github

在 Git 合并的过程中,需要理解两件事情:

  • 更改:文件的两个版本之间发生了什么类型的操作? 添加或删除新内容,或更新现有内容。
  • 区域:更改的区域有两种可能性。 更改发生在文件的不同区域或更改发生在文件的同一区域。 同一区域意味着开发人员围绕文件的同一位置(例如,段落、行等)进行了更改。

如果更改不同区域时,这种情况比较简单,Git 使用自动合并策略自动处理大多数这些情况。

但是当更改发生在文件的同一区域时,Git 不会执行自动合并,它会提示冲突让开发者解决。

以一个具体的例子来解释合并冲突的产生过程:

  • 张三更改了文件abx.txt,然后把它提交到了远程仓库
  • 李四并不知道张三改了这个文件,与此同时,它也对同一文件、同一区域做了更改
  • 李四把更改推送到远程仓库,这是Git会提示版本过旧,需要更新
  • 李四重新从远程仓库拉取代码更新,再次提交时会收到自动合并冲突的警告

git 冲突,工具,Github,开发,git,github

这个过程是不是似曾相识?

这就是合并冲突以及它的产生过程,下面就来介绍如何解决合并冲突!

如何解决合并冲突?

解决合并冲突其实并不难,在90%的情况下,当你对内容变化清楚的时候就会简单很多。

接着前面的例子,李四更改abc.txt之后,本地文件就包含自己的修改和张三的修改。所以,接下来就需要选择具体的处理措施:

  • 保留张三的更改并删除自己的更改
  • 删除张三的更改并保留自己的更改
  • 保留张三和自己的更改
  • 删除张三和自己的更改

应该选择哪一个呢? 这完全取决于项目的需求。 但是,至少要保证即将发生的变化,这样才知道选择何种措施。然后才可以逐步解决冲突。

下面就来逐步解决冲突!

场景1:修改同一文件同一区域

当 Git 由于更改在同一区域中而无法执行自动合并时,它会用特殊字符指示冲突的区域,字符序列是这样的:

  • <<<<<<<
  • =======
  • >>>>>>>

<<<<<<< 和 ======= 之间的所有内容都是你的本地更改,这些更改还不在远程存储库中。 ======= 和 >>>>>>>> 之间的所有行都是来自远程存储库或另一个分支的更改。

接着前面的例子,假如张三更改后的内容是:

- Eat
- Read
- Gym

李四更改后的内容是:

- Eat
- Read
- Sleep

合并时就会产生下面冲突:

- Eat
- Read
<<<<<<< HEAD
- Sleep
=======
- Gym
>>>>>>>

接下来就需要对比这两部分内容,做出自己的选择,应该保留哪一个或者删除哪一个,这个完全取决于业务的现实情况。

在接受了更改之后,还没有结束,还需要做如下操作:

git add <files>
git commit -m "Message"
git push

这样就解决了合并冲突。

场景2:文件在远程/其他分支被删除

在删除的文件合并冲突中,一个开发人员在一个分支中删除一个文件,而另一个开发人员在另一个分支中编辑同一个文件。 在这种情况下,你需要决定是要保留该文件还是删除它。

要将已删除的文件添加回你的分支,需要执行以下操作:

git add <file-name>

如果确定要删除这个问津啊,就执行下面操作:

git rm <file-name>

然后,就是把更改提交:

git commit -m "Message"
git push

上面2种场景就是git冲突中比较常见的现象,其实,在git使用过程中很多报错或者告警信息都提示的非常情况,我们如果能够轻松的读懂报错信息、理解基本原理以及问题发生原因,其实解决问题就是水到渠成的事情!

建议大家有空可以多浏览Github,有很多好用的开源免费工具。但是,目前Github上项目多如牛毛,而且刷榜现在也非常严重,想要找到优质的项目变得越来越难。这里,给大家推荐Github上一个非常不错的项目《DevWeekly》,这个项目每周都会精挑细选一些优质的开源项目,涵盖C++、JAVA、JavaScript、Python、Go等不同编程语言。此外,还有一些开源工具、优秀的技术文章,而且考虑到很多同学访问Github不方便的问题,我还特意同步到了Gitee,建议大家看一下:

https://gitee.com/sharetech_lee/DevWeekly

hello,大家好,我是Jackpop,重点大学本科毕业后保送到哈工大计算数学专业读研,有多年国内头部互联网、IT公司工作经验,先后从事过计算机视觉、推荐系统、后端、数据等相关工作。如果同学们在升学考研、职业规划、高考志愿、简历优化、技术学习等方面有困惑,欢迎大家前来咨询!文章来源地址https://www.toymoban.com/news/detail-780188.html

到了这里,关于Git遇到冲突?解决也太简单了的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • git代码合并、git解决冲突的方法?

    Git是一种分布式版本控制系统,它提供了多种方法来合并代码和解决冲突。下面是两个常见的场景以及对应的操作步骤: 合并分支 当我们在一个项目中有多个分支时,需要将不同分支中的代码合并到一起。假设我们有一个主分支master和一个开发分支dev,现在需要将dev分支合

    2024年02月02日
    浏览(53)
  • 【Git】制造冲突以及解决冲突的详细方法

    介绍 这里是小编成长之路的历程,也是小编的学习之路。希望和各位大佬们一起成长! 以下为小编最喜欢的两句话: 要有最朴素的生活和最遥远的梦想,即使明天天寒地冻,山高水远,路远马亡。 一个人为什么要努力? 我见过最好的答案就是:因为我喜欢的东西都很贵,

    2024年02月05日
    浏览(44)
  • git 分支合并冲突解决

    已经累到不想说话了,直接上流程吧! 1、比如你想A分支合并到B分支,先把这两分支都pull一下最新代码:git pull 2、切换到要合并的分支:git checkout tougu_pan (tougu_pan 是我的B分支) 3、在 tougu_pan 分支上执行 git merge --no-ff dev 4、git status 查看本地修改,就会出现以下状态 5、如

    2024年02月10日
    浏览(62)
  • 记一次git冲突解决

    在提交mr的时候突然遇到了conflict,这时候意识到没有及时pull代码,脑海中想起了隔壁一起入职的同事经常念叨的一句“每天早上来都pull一下代码”。但是已经迟了 我看了一下,主要是同一个文件,master分支上已经被修改过,然后我要mr的代码也在这个文件上进行了修改。因

    2024年02月05日
    浏览(40)
  • Git提交解决冲突

    解决方法如下两种: 1.保留你本地的修改 git merge --abort git reset --merge 合并后记得一定要提交这个本地的合并(add–commit–push–pull) 然后在获取线上仓库: git pull 2.down下线上代码版本,抛弃本地的修改 不建议这样做,但是如果你本地修改不大,或者自己有一份备份留存,可以直接

    2023年04月22日
    浏览(38)
  • git代码冲突解决办法

      作者是一个工作2年的Java程序猿,因为自己经常用到git,每天都需要提交代码,有时候合并代码也会有一些类代码冲突,把自己的解决方法告知出来,让大家有一定的参考。 为什么会产生冲突? 因为在合并分支的时候,master分支和dev分支恰好有人都修改了同一个文件,GIT不

    2024年02月16日
    浏览(44)
  • Git代码冲突解决步骤

      今天讨论下实际开发中有关版本控制的问题。在多人协作编码时,使用Git版本管理,在提交代码时可能会遇到冲突的情况,这里讨论下冲突的解决步骤。   首先在本地创建一个测试项目“Test”,并与远程代码库进行关联,此步骤省略。 1、创建代码的用户命名为“用户

    2024年01月17日
    浏览(32)
  • 常见git解决冲突

    git最常见的冲突是 merge 一个分支时,产生的冲突。还有一个不常见的冲突是 stash pop 产生的冲突。 分支合并: 如果你在两个不同的分支中,对同一个文件的同一个部分进行了不同的修改,Git就没法干净的合并他们,在合并他们的时候就会产生合并冲突。此时Git做了合并,但是

    2024年02月09日
    浏览(42)
  • 使用IDEA工具处理git合并后的冲突的细节

    使用 IDEA 处理合并(merge) 使用IDEA处理git合并如果遇到冲突,对冲突文件的不冲突部分需要处理吗?会自动将双方不冲突的部分合并吗? 比如如下,使用 IDEA 合并 branch1 到 branch2 分支,出现了冲突,如下图: 如果处理好冲突,得到如下图: 我的问题是,绿色的部分如果不更新

    2024年02月03日
    浏览(56)
  • IDEA 解决 Git 冲突问题

    提交代码的时候出现冲突一般都是因为远程代码出现修改,而本地没有拉取,就进行修改,刚好和远程修改的同一行 在这里我用IDEA进行复现 这里是远程厂库的代码,我已经进行了修改 再本地的代码我没有先进行拉取就进行了修改 改完之后进行推送,就会出现冲突问题,i

    2024年02月16日
    浏览(48)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包