Git代码冲突解决步骤

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

  今天讨论下实际开发中有关版本控制的问题。在多人协作编码时,使用Git版本管理,在提交代码时可能会遇到冲突的情况,这里讨论下冲突的解决步骤。

  首先在本地创建一个测试项目“Test”,并与远程代码库进行关联,此步骤省略。

1、创建代码的用户命名为“用户1”。代码库内只有一个文本文件“Test.txt”,文件内容如下图:
Git代码冲突解决步骤,笔记,git

提交本地代码,查看提交记录
Git代码冲突解决步骤,笔记,git

将本地代码推送到远程库,结果如下:
Git代码冲突解决步骤,笔记,git

2、另一个开发者命名为“用户2”。他从远程代码库克隆项目到本地,如下图:
Git代码冲突解决步骤,笔记,git

此时文件内容和“用户1”本地内容相同:
Git代码冲突解决步骤,笔记,git

3、“用户2”修改本地文件,增加一行数据(“用户2第1次提交:67890”),并在本地进行提交:
Git代码冲突解决步骤,笔记,git

“用户2”将本地代码提交到远程库,结果如下:
Git代码冲突解决步骤,笔记,git

4、“用户1 ”通过某种方式得知“用户2”修改了代码,他在本地拉取远程库代码,可以看到文件变化状态:
Git代码冲突解决步骤,笔记,git

“用户1”此时查看本地文件内容,与“用户2”提交内容一致:
Git代码冲突解决步骤,笔记,git

此过程未发生代码冲突,因为“用户1”完全信任“用户2”的修改,直接拉取了远程代码库。
接下来两个用户同时对同一个文件的相同位置进行修改,造成冲突。

冲突解决方式一:

1、在原来项目的基础上,“用户1”继续对本地文件进行修改,修改后内容为:
Git代码冲突解决步骤,笔记,git

将代码提交到本地库:
Git代码冲突解决步骤,笔记,git

并将代码推送到远程库:
Git代码冲突解决步骤,笔记,git

2、此时“用户2”也在本地修改代码,修改内容为:
Git代码冲突解决步骤,笔记,git

“用户2”也将代码提交到本地库:
Git代码冲突解决步骤,笔记,git

但是在推送远程库时发生错误,提示如下:
Git代码冲突解决步骤,笔记,git

错误原因是远程库包含了本地库没有的内容,也就是“用户1”第二次推送的内容。Git提示我们要先拉取远程修改并整合后再进行推送。

3、“用户2”尝试拉取远程库内容:
Git代码冲突解决步骤,笔记,git

提示显示存在冲突,此时进入“MERGING”状态,如下图:
Git代码冲突解决步骤,笔记,git

4、通过命令查看当前状态,显示同时修改的文件名“Test.txt”
Git代码冲突解决步骤,笔记,git

5、也可以通过命令查看同时被修改的文件差异,其中“HEAD”指向的是当前用户提交的内容,分割线下方是其他用户提交的差异内容。
Git代码冲突解决步骤,笔记,git

6、通过查看本地文件也能看到相同的结果
Git代码冲突解决步骤,笔记,git

7、此时需要当前用户手动解决冲突,即手动删除不想被提交的代码,如下图我们选择保留“用户2”的提交,将多余代码删除。
Git代码冲突解决步骤,笔记,git

8、待文件修改完成后,再次执行提交动作,包含“add”,“commit”两步操作,提交后查看本地库记录。
Git代码冲突解决步骤,笔记,git

可以看到提交记录中多了一次合并提交(图中e2f2402节点),两位用户的冲突代码形成并列关系的两个节点。

9、本地提交完成后即可推送远程代码,至此冲突解决:
Git代码冲突解决步骤,笔记,git

10、查看远程库代码和提交记录如下图:
Git代码冲突解决步骤,笔记,git
Git代码冲突解决步骤,笔记,git

冲突解决方式二:

以上是第一种方式解决提交冲突,在此基础上演示下第二种解决方式。
1、“用户2”在提交完成后,本地进行第三次修改,修改内容如下:
Git代码冲突解决步骤,笔记,git

2、然后执行正常的提交和推送远程的步骤,远程库修改后如下:
Git代码冲突解决步骤,笔记,git

3、“用户1”在本地也修改同样的位置,但只是部分代码与“用户2”本次提交不同:
Git代码冲突解决步骤,笔记,git

4、与前述步骤类似,“用户1”本地提交完成后,推送远程库会失败报错,错误原因同样是远程库有本地不存在的内容。如下两图:
Git代码冲突解决步骤,笔记,git
Git代码冲突解决步骤,笔记,git

5、此时按照“方式一”的方法拉取远程代码,但拉取时增加参数“–rebase”,拉取后显示存在冲突。
Git代码冲突解决步骤,笔记,git

此时本地库变成“REBASE”状态。
Git代码冲突解决步骤,笔记,git

6、通过查看本地记录可以看到两次冲突提交(e6e4638和5943de2)。
Git代码冲突解决步骤,笔记,git

7、查看本地状态也会显示同时修改同一文件:
Git代码冲突解决步骤,笔记,git

8、查看代码差异可以看到只有一行冲突,相同的代码不会影响。
Git代码冲突解决步骤,笔记,git

9、本地修改冲突文件
Git代码冲突解决步骤,笔记,git

10、本地重新提交
Git代码冲突解决步骤,笔记,git

11、查看本地提交记录,提交顺序分别是“用户1第3次提交”,“用户2第3次提交”,“用户1第3次提交,解决冲突”。但此时仍处于“REBASE”状态,需要解决此状态才能推送远程。
Git代码冲突解决步骤,笔记,git

12、查看本地状态,此时处于一个正在编辑的提交,提示我们可以继续执行rebase命令。
Git代码冲突解决步骤,笔记,git

13、执行命令“git rebase --continue”,状态显示已完成,此时主分支不再是“REBASE”状态。
Git代码冲突解决步骤,笔记,git

14、再次查看本地提交记录。对比前述第11步,可以看到“用户1的第3次提交”这个节点消失了,整个分支变成了顺序状态,而当前用户的本次提交(为了表达清晰,命名为“用户1第3次提交,解决冲突”)变成了整个分支的最新提交。
Git代码冲突解决步骤,笔记,git

15、经过以上步骤后再重新推送远程库,同时检查远程库代码完全正常。代码冲突得以解决。
Git代码冲突解决步骤,笔记,git
Git代码冲突解决步骤,笔记,git

总结:

方式一:会显示所有merge节点,合并冲突后产生一次新的合并提交
1.本地修改代码后按步骤提交
2.推送远程代码失败,需拉取远程库代码
3.使用拉取命令“git pull origin master”
4.找到冲突代码人工修改
5.重新执行提交动作,
(1)git add .
(2)git commit -m “xxx”
(3)git push origin master

方式二:不显示merge节点,合并后把当前提交放在所有提交之上
1.本地修改代码后按步骤提交
2.推送远程代码失败,需拉取远程库代码
3.使用拉取命令“git pull --rebase origin master”
4.找到冲突代码人工修改
5.重新执行提交动作,
(1)git add .
(2)git commit -m “xxx”
(3)git rebase --continue
(4)git push origin master

 对于何时选用哪种合并方式,目前还没有研究清楚。据网上说法,要看项目具体要求,以上示例中只有一个主分支,没有开发分支,一般不建议在主分支上使用“–rebase”。针对这个问题以后再做详细讨论。文章来源地址https://www.toymoban.com/news/detail-797897.html

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

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

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

相关文章

  • git小乌龟轻松解决代码冲突

    多人开发,当对同一文件进行更改的时候,后提交代码的人都会有冲突提示 1、在本地打开项目 2、使用小乌龟先拉取代码 3、拉取后肯定会报红,提示你未拉取成功 这个时候,我们先贮藏本地的更改 可以随意命名先保存 然后再去拉取,一般都会顺利拉取成功 拉取成功后,我

    2024年02月12日
    浏览(38)
  • 【Git】TortoiseGit代码冲突解决方法

    冲突场景:User1和User2修改、拉取相同文件 User1修改文件C内容,提交并推送,成功; User2修改文件C内容,拉取,提示合并错误。 冲突分析: 此时文件状态还未显示冲突,因为本地文件只是修改,并未提交到本地暂存区;而此时从远程拉取的文件已保存在暂存区,但又无法和

    2024年01月20日
    浏览(74)
  • Git_常用命令+代码冲突解决方案

    –local: 配置对当前仓库有效 –global: 配置对当前用户(指的是当前用于登录系统的用户)的所有仓库有效 设置用户名及邮箱 注意:由于此处设置的用户名中间有空格所以要使用双引号,正常设置时无需使用双引号 设置仓库的认证方式 credentail.helper后的参数可选: cache: 在第

    2024年04月14日
    浏览(56)
  • 【git merge/rebase】详解合并代码、解决冲突

    目录 1.概述 2.merge 3.rebase 4.merge和rabase的区别 5.解决冲突 在实际开发中,一个项目往往是多个人一起协作的,头天下班前大家把代码交到远端仓库,第二天工作的第一件事情都是从服务器上拉最新的代码,保证代码版本的一致性。在这种团队协作中大家修改到同一份文件是难

    2024年02月08日
    浏览(56)
  • idea解决代码冲突-git分布式合并分支-加git回滚操作

    第一次接触项目发版的工作,记录一下解决版本冲突合并问题的心得。 适用场景:分布式项目,多人使用自己分支开发,最后合并自己的代码分支给主分支。 话不多说,直接看图 1.全部拉下来(这个拉取是全部拉取,既保证自己的分支最新,同时也把远端的分支都拉到最新

    2024年02月08日
    浏览(120)
  • Idea中解决Git冲突问题及merge代码消失问题【git常用tips】

    Git命令全系列 我们可以通过Idea直接从GitLab或GitHub等平台上拉取代码 如果上述的小技巧拉取不下来,尝试勾选下图的选项 2.1 演示冲突(GitLab) ①首先在GitLab中或者任意代码托管平台创建一个自己的仓库 通过上面的命令将仓库克隆下来 ②在自己的项目中,任意创建一个类 ③

    2024年01月25日
    浏览(51)
  • vscode中git拉取、提交代码、解决冲突,以及合并代码的操作

    场景:本地有修改代码,远程仓库没有更新,这时本地想要提交代码。 步骤:本地修改了testA文件内容-本地先暂存提交-拉取-推送; 本地修改了testA文件内容 本地先暂存提交 拉取 推送 远程仓库上就可以看见提交记录了 解决冲突场景:本地有修改代码,远程仓库同时有更新

    2024年02月05日
    浏览(67)
  • git代码冲突解决,覆盖本地,本地和远程保持一致方法

    Git是我们开发中用到的一种代码保存和合并开发的工具,但是因为开发是团队,因此会出现合并代码冲突的问题,所以我们需要解决冲突的代码。   因为在合并分支的时候,master分支和dev分支恰好有人都修改了同一个文件,GIT不知道应该以哪一个人的文件为准,所以就产生

    2024年02月05日
    浏览(47)
  • Java后端入职第二天,Git代码提交冲突优雅解决

    现在大部分公司开发基本是使用Git作为版本管理的工具,除非一些比较老或者传统的公司还在使用SVN。Git也有很多平台,包括阿里的codeup,码云,gitlab,以及GitHub,甚至有的还会自己去搭建版本管理平台,但是,最终使用的命令还是Git,所以大家只要熟悉使用git命令即可。本

    2024年02月04日
    浏览(57)
  • git代码管理操作全流程之一: 提交、更新、解决冲突、合并等操作

    Step 1, 检查自己的代码改动。执行 git commit -am\\\"\\\"  提交到本地仓库。注意写好准确的描述信息。 Step 2 ,执行 git pull --rebase ,将当前分支的代码更新到远程仓库的最新版本。如果有冲突解决冲突。解决git冲突请见后续介绍。 Step 3 ,上述步骤执行结束,测试代码。在git bash 命

    2024年02月16日
    浏览(57)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包