代码回滚(git reset)后push失败的解决方法

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

问题描述

代码本地回滚之后(即 git reset 到之前的某个历史节点),push上去失败,并报出以下错误信息

! [rejected]
master -> master (non-fast-forward) error: failed to push some refs to 'git@github.com:PisecesPeng/usegit.git'
hint: Updates were rejected because the tip of your current branch is behind
hint: its remote counterpart. Integrate the remote changes (e.g. hint: 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.

大致意思是说,你当前的本地分支节点 比 远端的节点 还旧,默认不允许你push。

其实主要是怕你误操作,因为reset到某个旧节点之后 再push上去,会导致远端的新节点 也同步丢失,如下图所示:

git回退之后push失败,git命令,git

而我们回滚代码 又恰恰是为了丢掉新节点,所以这个时候可以 强制push

解决方案

此处用 TurtoiseGit 工具演示(你也可以用命令行,道理都一样)。

第1步,在Push界面,找到Force选项。

git回退之后push失败,git命令,git

第2步, 勾选“known changes”或“unknown changes”,点击下方的“OK”,即可强制提交

git回退之后push失败,git命令,git

known changes:相当于 --force-with-lease 命令,大致意思是 push 时会先帮你检查,只有当你要回滚的 本地commit节点 与 远端的commit节点完全一致,才能 push 上去。

git回退之后push失败,git命令,git

unknown changes:相当于 --force 命令,更加简单粗暴,不作任何安全检查,直接 push 上去,并覆盖远端的 commit节点。

第3步,登录远端的 git仓库,查看提交结果,如下图所示

git回退之后push失败,git命令,git

git回退之后push失败,git命令,git

 可以看到,已经成功回滚到“feat:新增....菜单”的commit节点,而之前“feat:添加打印”这个commit节点已经丢失。

注意:强制提交 这种操作是不可逆的,例如上述的“feat:添加打印”这个commit节点 将永久性丢失,所以要谨慎使用。文章来源地址https://www.toymoban.com/news/detail-843286.html

到了这里,关于代码回滚(git reset)后push失败的解决方法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • git/github 常规操作第四篇,如何用命令回退(回滚/还原)代码,看这篇文章就够用了

    当我们代码合并错误,或者代码因为某种原因找不到了,但是在历史版本中有最完整的代码,我们要怎么回滚或回退到对应版本还原代码呢,下面就用两种方式来回退。 第一种方式: 重置reset (谨慎:重置的方式不会保留废弃的提交记录) 1、查看并找到我们要回退的版本号

    2024年02月16日
    浏览(38)
  • git上传代码之还没push如何回滚上一次commit的操作

     使用的场景: 1.发现传错分支啦或者是还有东西未修改完成,想要撤回commit操作 必须是只是进行了git add . git commit -m \\\"save\\\" 还没有push  具体操作: 1. 切换到目标分支(在你执行commit操作的分支) 2.撤销commit,用如下指令 我的实际操作:  最终得到: 最后的最后: 本地的代

    2024年02月16日
    浏览(30)
  • git push代码报403错误解决方法

    使用git push -u origin main命令向GitHub仓库推送代码时,报错,错误信息如下 remote: Permission to xxx/xxx.git denied to (username2). fatal: unable to access \\\'https://github.com/username1/xxx.git/\\\': The requested URL returned error: 403 其中,上面的username2是本地git的用户名,与GitHub上的用户名username1不一致。 win1

    2024年02月14日
    浏览(29)
  • git 常用基本命令, reset 回退撤销commit,解决gitignore无效,忽略记录或未记录远程仓库的文件,删除远程仓库文件

    https://blog.csdn.net/a704397849/article/details/135220091 idea 中 rest 撤销commit过程如下: Git - Rest Head… 在To Commit中的HEAD后面加上^,点击Reset即可撤回最近一次的尚未push的commit Reset Type 有三种: Mixed(默认方式),保留本地源码,回退 commit 和 index 信息,最常用的方式 Soft 回退到某个版

    2024年02月02日
    浏览(49)
  • 使用git reset回退版本

    在介绍版本回退之前先介绍下如何git log命令,可以查看我们的提交历史记录。 先看下我的提交记录 最新的提交中,我在main.cpp中添加了这两行代码  此时,我们就可以使用 git reset --hard 命令进行版本回退 git reset --hard 后面跟你要回退的那个版本的commit值,我们回退到 \\\"配置文

    2024年02月09日
    浏览(33)
  • git版本回退:revert回退其中一个提交/reset回退到某个版本

      对于已经push或没有push的,回退commit方式一致。只是最后push 的时候 ,如果修改了已经push 的commit,那么需要使用git push -f 区别:git reset commitID;  回退到某个版本。中间的版本都会回退。            git revert commitID; 只将commitID的代码回退。中间的版本不变。且会形成一条

    2024年02月12日
    浏览(38)
  • git版本回退(git reset、git revert、git stash)

    本文 git 相关命令: git reset: 回退版本,可指定某一次提交的版本。 git reset [--soft | --mixed | --hard] commitId 。 git revert: 撤销某个提交,做反向操作,生成新的commitId,原有提交记录保留。 git revert commitId 。 git commit --amend: git commit –amend 既可以对上次提交的内容进行修改,也

    2024年02月08日
    浏览(42)
  • (详解踩坑)GIT版本回滚git stash、git reset、git reset --hard、git revert

    目录 背景 一、(git log、git reflog)查看git提交日志及命令历史 1.1 git log(提交日志)  1.2 git reflog(命令历史) 二、git reset(回退到指定的版本,并且保留更改) 2.1 回退到指定版本 2.2 快捷回退上一版本 三、git reset --hard(回退到指定版本,不保留更改) 四、git revert(回退

    2024年02月12日
    浏览(41)
  • 关于 git 未能顺利结束(退出码1) 问题中输入解决代码后仍无法push的解决方法之一

    按照https://blog.csdn.net/weixin_43405300/article/details/124850873这篇帖子中输入代码后出现如下错误导致无法上传 此时可能是在gitee或其他托管网站上选中了邮箱不公开 取消邮箱不公开后再输入 git push -f origin master 即可

    2024年02月15日
    浏览(26)
  • Git 基础知识--stash 存储、reset 回退及恢复

    简介 Git 提供了 stash 存储的功能,即当你在工作到一半突然需要切换到另一个分支上,但又不想提交时,可将当前做出的修改通过 git stash 命令存储起来,之后再从其中重新读取之前的状态。 注意事项 若修改的文件没有执行 git add 即未被跟踪,则该文件不会被 git stash 存储,

    2023年04月10日
    浏览(39)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包