常见git解决冲突

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

git的常见冲突

git最常见的冲突是merge一个分支时,产生的冲突。还有一个不常见的冲突是stash pop产生的冲突。

产生冲突的原因

分支合并: 如果你在两个不同的分支中,对同一个文件的同一个部分进行了不同的修改,Git就没法干净的合并他们,在合并他们的时候就会产生合并冲突。此时Git做了合并,但是没有自动地创建一个新的合并提交。Git会暂停下来,等待你去解决合并产生的冲突。解决冲突后使用 git add <fileName>将该文件标记为以解决,解决完所有冲突文件后。使用git commit来完成合并提交
stash pop: 在我们 git pull同步远程分支代码时,git可能会提示 本次同步代码会导致工作区的修改内容被覆写,需要我们stash或者commit。此时我们git stash然后拉取代码。当我们使用git stash pop发现产生冲突。原因也是自己工作区的修改和拉取下来的代码对同一个文件的同一个部分进行了不同的修改。同样解决冲突,git add标记为以解决,git commit -m <info>

解决冲突的小技巧

merge产生的冲突关键字是HEAD和被合并分支的名字<merged branch name>。这样可以快速定位到产生冲突的地方,解决冲突时应该注意到底应该保留那个分支的文件。 解决完冲突后应该使用编译器编译一下看是否通过,防止没有解决完冲突或者出现了其它的情况。如果冲突的文件很多,可以使用git add .来标记已经解决所有冲突文件,使用git commit合并提交时,此时已经有了默认的提交信息,如果你不想添加一些额外的信息。直接wq推出即可。导致merge合并分支产生的冲突已经解决,此时因为合并分支和修复冲突产生的合并commit往往本地库领先远程库对应分支好几个commit,所以往往需要push一下。
stahs pop产生的冲突关键词是stashed changes updated upstream。解决冲突时,需要注意到底保留自己的修改还是别人的修改。此时如果有远程分支应该git push一下。

git合并策略

参考博客
在git合并的时候,当仅仅在一个分支上合并另外一个分支时。在合并产生冲突时我们对于冲突的commit往往只需要做二选一。只保留本身分支的内容或者只保留其它分支的内容。这样就避免了手动去修改避免造成错误。
git的合并策略有如下几种

  1. recursive 默认合并策略 递归三路合并算法
  2. resolve 三路合并算法
  3. octopus
  4. ours
  5. subtree
    当使用 recursive策略时,还可以指定一些额外的参数。
  6. ours 如果合并没有产生冲突,那么与默认合并结果相同,如果发生冲突,将自动应用自己这一方的修改。
  7. theirs 与ours相反,如果产生冲突,将自动应用来自其它人的修改(也就是merge参数中指定的那个分支的修改)
  8. patience
    例子
    注意 使用下面的命令,使用参考博客的命令会有问题。
    当前处于 test 分支进行开发,想要同步develop的代码
git merge develop -s recursive -X theirs

因为默认合并策略就是 recursive ,所以可以简写成

git merge develop -X theirs

gitpro中的参考例子
常见git解决冲突

git merge 和 rebase 的区别

快进(fast-forward),当你试图合并两个分支时,如果顺着一个分支走下去能够到达另一个分支,那么Git在合并两者的时候,只会简单的将指针向前推进(指针右移),因为在这种情况下的合并操作没有需要解决的分歧—这就叫做 “快进(fast-forward)”
merge git在使用merge合并两个分支时,会使用到简单的三方合并,及两个分支最新的commit和两个分支共同的祖先commit进行一个合并
常见git解决冲突
常见git解决冲突
rebase(变基)
可以使用rebase命令将提交到某一分支上的所有修改都移动到另一个分支,就好像重新播放一样。这样做的好处是,使提交历史看起来就像是一条直线一样,并且可以减少合并分支产生的commit。因为git 在使用merge合并分支时会产生一个新的合并提交的commit。而使用rebase将一个分支的修改应用到其它分支上,就不会产生新的合并提交。而是快进(fast-forward)

其它

vim 快速跳转到文本最后 shift + G ,跳转到文本开头 gg文章来源地址https://www.toymoban.com/news/detail-488551.html

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

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

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

相关文章

  • 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日
    浏览(64)
  • Git - 导出(archive)、忽略(gitignore)、隐藏(Stash)、合并冲突(merge)的解决方法

    本次集中总结了Git4个常规操作,导出(archive)、忽略(gitignore)、隐藏(Stash)、合并冲突(merge)的解决方法,希望帮助到正在辛苦寻找的你。 .gitignore忽略文件 之前开发和部署服务比较仓促,所以有很多图片文件一起加载到服务中,使得仓库代码922M,所以要分离出图片和忽略部分,

    2024年02月07日
    浏览(35)
  • 解决新版vscode在git merge代码的时候,解决代码冲突的选项按钮不见的问题

    由于vscode新版本中,在git merge代码的时候,解决代码冲突的选项按钮不见了,目前了解1.70.0-1.80.0版本都有这个问题, 如图: 解决方法: 点击设置搜索’merge editor’,如图: 取消勾选后,冲突代码解决按钮会出现; 注意此处按钮勾选状态和意思是相反的,默认是勾上的

    2024年02月15日
    浏览(47)
  • 【Git】分支合并&冲突产生与解决

    文章学习自:麦兜搞IT,如有侵权,告知删除 合并操作在Git中属于最为核心的一个操作,包括三种合并方式:一种为fast forward ,需要满足有非常强的前提条件才能执行;一种为3 way merge方式,这种是我们工作中常见的;最后一种为变基rebase。另外,本篇文章也会深入讲解冲突

    2024年02月04日
    浏览(69)
  • Git合并多分支及冲突解决

    工作场景 工作场景中我们常常会遇到以下情况: 小明:靓仔/妹,我上线那天有事情,我的那个分支你帮我一起推一下 摸鱼崽:帮我也合一下,好哥哥 我:好(你)呀(md) 如果在这种时候你说我不会,我只会add,commit、push我本地的,你的分支我哪儿会啊,是不是有点尴尬

    2024年02月13日
    浏览(51)
  • Git 分支简介-创建-合并-解决冲突-删除

    1.在版本控制系统(如Git)中,分支(Branch)是代码库的不同线路或路径,用于同时进行不同的开发工作。分支可以将代码库的状态 ‘‘复制’’ 到一个独立的环境中,使得在这个分支上进行的更改不会影响到其他分支。 2.使用分支的好处是可以同时进行多个并行的开发任务

    2024年03月21日
    浏览(63)
  • 如何解决Git合并分支造成的冲突

    一、造成冲突的场景         在我们在参与项目开发的时候,通常会创建公共的文件,但是当我们编码完成,使用git进行分支合并时,往往会出现合并冲突,也就是负责不同部分的开发人员会对同一个文件的同一个部分进行修改,这个时候就需要我们解决合并造成的冲突

    2023年04月23日
    浏览(64)
  • 深入了解 Git 分支合并冲突解决步骤

    在协作开发中,当不同分支对同一文件的相同位置进行修改时,往往会出现合并冲突。这些冲突需要开发者手动介入解决,以确保代码的一致性和稳定性。以下是解决 Git 合并冲突的有效步骤,让我们深入了解这个过程。 一旦执行 git merge 分支名称 进行合并操作,Git 会尝试自

    2024年02月04日
    浏览(62)
  • Git入门实战教程之合并分支并解决冲突

    在开发过程中,难免会遇到代码冲突的情况,那么该如何处理呢? 分支策略: 首先master主分支应该是非常稳定的,也就是用来发布新版本,一般情况下不允许在上面干活,干活一般情况下在新建的dev分支上干活,干完后,比如上要发布,或者说dev分支代码稳定后可以合并到

    2024年04月10日
    浏览(50)
  • 关于git 解决分支冲突问题(具体操作,包含截图,教你一步一步解决冲突问题)

    当在Git中有多个开发者在同一个分支上工作时,可能会发生分支冲突。分支冲突指的是多个开发者在同一时间修改相同的代码文件,导致Git无法自动合并这些更改。 比如说:我在github上进行了md文件的修改,我在本地仓库里面也进行md文件的修改,这个时候,提交的时候会出

    2024年02月21日
    浏览(48)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包