Git 代码提交到远程主分支后发生冲突或者覆盖

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

Git 代码提交到远程主分支后被覆盖(消失)的解决方法:


问题描述

在提交代码的时候,有两个人,比如叫A与B,现在A从远程主分支master拉了代码到自己本地,本地电脑形成local A与local B分支,然后写了自己的需求代码commit并推送到远程仓库,形成自己的origin A与origin B,然后两个人进行合并请求merge request,请求merge后,master主分支里代码少了一部分。

提示:原因是因为两个人分别互相pull了对方远程分支的代码,然后对master分支进行push的时候会发生冲突,导致代码覆盖或其中一个人的代码消失

原因分析:

A与B在某些时刻pull了对方的远程代码仓库,比如A同学 pull了B的远程分支origin B,然后加到了自己的commit里并push到自己的远程仓库,会导致一些代码合并冲突。

下图是Git协作模式工作流,开发人员是不允许互相pull的,只能拉主分支的代码并合并到主分支

解决方案:

以下为解决方案,分为几步进行,比如A同学要解决冲突。

  • 第一步,A回滚本地代码仓库local A到没有pull对方代码的时候,也就是说找到pull origin B的时候的前一次commit的标记点。
  • 第二步,修改代码,把自己的需求代码写入,推送到A的远程分支重新请求合并
    以上两步就可以解决冲突

下面来详细演示下第一步的流程:

  1. 使用git log查看commit日志,找到没有跟别人合并的时候的点

如下图所示,敲入git log命令,并查找到最后一次提交,比如是这个6d27开头的commit id,找到这个id后我们进行回滚,使用git reset命令

Git 代码提交到远程主分支后发生冲突或者覆盖
注意!!!! 注意!!!!
在reset前要把自己写的新需求的代码保存到当地,可以保存到记事本或者暂时新建个py文件,因为回滚后新代码就消失了

  1. 先回退本地的这次提交, git reset --hard [commit id]

    在reset前要把自己写的新需求的代码保存到当地,可以保存到记事本或者暂时新建个py文件,因为回滚后新代码就消失了

  2. 将本地修改强制push到远程仓库 git push --force

第二步的流程就跟往常一样了:

第二步就是平常工作时的流程,本地代码回滚后自己写的需求代码消失了,所以需要将自己之前写的 代码写进去—进行commit–然后push—远程仓库请求merge

总结:

好了,这就是git提交发生冲突的时候,一种解决方法思路,如果有碰到相同问题的可以借鉴一下文章来源地址https://www.toymoban.com/news/detail-468909.html

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

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

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

相关文章

  • 使用git时候提交时候发生冲突,你能解释冲突如何产生,你是如何解决的

    Git冲突情况举例: 简单来说就是本地修改的文件和目标远程库的同一个文件都有修改。这时无论是pull/push/merge时都会产生冲突。 1、不同分支下的merge 比如在不同分支下进行分支合并时,我们在本地修改了a文件并把a文件的修改push到了test分支下,接着我们切换到master分支下将

    2024年02月08日
    浏览(36)
  • git远程分支强制覆盖本地分支

    有时候同一个分支,远程仓库的和本地的都被修改的面目全非了,变得很不一致了。 如果想要把本地的替换成远程的,即用远程分支覆盖本地分支。 第一种方式: reset --hard 参数 第二种方式:pull --force参数 有的时候,已经知道远程分支与本地分支有不同的commit,比如本地分支

    2024年02月11日
    浏览(45)
  • git远程分支覆盖本地

    方式1: git fetch --all git reset --hard origin/dev (这里dev要修改为对应的分支名) git pull origin dev 方式2: git远程分支强制覆盖本地分支_git 远程覆盖本地_hanscal的博客-CSDN博客

    2024年02月11日
    浏览(37)
  • Git远程分支覆盖本地分支的详细介绍

    导言: 在使用Git进行团队协作或者个人开发中,经常会遇到需要将远程分支的内容覆盖到本地分支的情况。本篇博客将详细介绍如何使用Git来实现远程分支覆盖本地分支的操作,帮助读者更好地应对这类需求。 一、确认远程分支状态: 首先,我们需要确认远程分支的状态,

    2024年02月15日
    浏览(27)
  • git远程覆盖本地分支的方法

    git fetch --all #用来更新本地仓库区 git reset --hard origin/master #将上一步中得到的origin master代码用来更新本地暂存区与工作区的代码,与本地最新的远程代码保持一致 origin/master 只代表一个概念,即远程分支名,是从远程拉取代码后在本地建立的一份拷贝; git pull origin master # 拉取

    2024年02月11日
    浏览(38)
  • Git远程分支项目强制覆盖本地项目

    此操作会将本地项目代码与Git远程仓库代码保持完全一致,可能会导致自己本地修改的代码被覆盖,覆盖后找都没法找那种。所以操作前请确认,本地所有修改文件是否不重要或者自己以备份。 操作主要分几个步骤完成。 第一步:获取远程所有分支的最新更新 第二步: 强制

    2024年02月05日
    浏览(39)
  • Git篇——git pull远程分支强制覆盖本地的另一个分支

    1.在要被覆盖的分支下,拉取所有代码 2.将本地分支重置  3.切换到其他分支 4.拉取代码覆盖 前2步是强制解决本地分支的可能出现的错误状态,因为状态错误的话,步骤4可能会无法顺利执行。

    2024年02月11日
    浏览(28)
  • 在进行git pull操作时,存在本地文件与远程仓库发生冲突的情况

    在远程使用了git pull origin main:main命令后,出现下面的错误: 1. 本地仓库所在的目录下,先保存本地修改 2. 执行这个命令,来清除本地修改并回退到与远程仓库一致的状态 这个命令会删除所有未提交的修改,所以在执行这个命令之前先保存对本地的修改。 3.  然后再执行gi

    2024年02月13日
    浏览(35)
  • 【Git】覆盖提交代码

    目录 强制提交 注意事项 往期推荐 有时候VsCode代码提交失败, 然后已经拉取最新代码, 就是提交失败.. 可以使用`--amend`选项修改上一次提交的提交信息,包括提交信息的描述和已暂存的文件。 在修改已提交的提交信息之后,你需要强制推送更改到远程仓库。这可能会影响其他

    2024年02月04日
    浏览(28)
  • git提交代码冲突

    用idea2023中的git提交代码,出现 error: Your local changes to the following files would be overwritten by merge: ****/****/****/init.lua Please commit your changes or stash them before you merge. Aborting 出现这个错误可能是因为你的本地修改与远程仓库中的内容发生了冲突。即使你删除了 init.lua 中的修改,Git仍然

    2024年02月20日
    浏览(31)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包