代码回滚(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上去,会导致远端的新节点 也同步丢失,如下图所示:

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

解决方案

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

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

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

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

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

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

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

注意:强制提交 这种操作是不可逆的,例如上述的“feat:添加打印”这个commit节点 将永久性丢失,所以要谨慎使用。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/309678.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

跨境电商迎来综合竞争力比拼时代 五大趋势解读跨境2024

过去几年,跨境电商成为外贸出口增长的一大亮点,随着年底国务院办公厅《关于加快内外贸一体化发展的若干措施》的发布,跨境电商在促进经济发展、助力内外贸一体化发展方面的价值更加凸显。 这是跨境电商变化最快的时代,也是跨境电…

Java核心知识点1-java和c++区别、隐式和显示类型转换

java和c区别 java通过虚拟机实现跨平台特性,但c依赖于特定的平台。java没有指针,它的引用可以理解为安全指针,而c和c一样具有指针。java支持自动垃圾回收,而c需要手动回收。java不支持多重继承,只能通过实现多个接口来…

音频播放软件Foobar2000 mac特点介绍

Foobar2000 mac是一款高度可定制的音频播放器,适用于Windows平台。它支持各种音频格式,包括MP3、FLAC、AAC、WMA等,同时也支持各种音频插件和效果器,可以提供更好的音质和用户体验。 Foobar2000 mac软件特点 1. 高度可定制&#…

探索效率与可扩展性:MinIO图片服 VS FastDFS图片服

目录 1、前言 2、背景知识 2.1 Minio图片服的概述 2.2 FastDFS图片服的概述 3、性能比较 3.1 存储性能比较 3.1.1 对比上传速度和下载速度 3.1.2 比较两者的读写性能 3.2 负载均衡性能比较 4、可扩展性比较 4.1 横向扩展性性能比较 4.2 纵向扩展性性能比较 5、结语…

大模型微调LoRA训练与原理

1.什么是LoRA? LoRA的全称是LOW-RANK-ADAPTATION。是一种实现迁移学习的技术手段。 2. 矩阵的秩? 秩是一个向量空间的基向量的个数。例如:二维平面坐标系存在两个基向量,平面上任意的一个向量都可以使用这两个基向量进行线性表示…

Vue模板编译

Vue模板编译 Vue生命周期中,在初始化阶段各项工作做完之后调用了vm.$mount方法,该方法的调用标志着初始化阶段的结束和进入下一个阶段,从官方文档给出的生命周期流程图中可以看到,下一个阶段就进入了模板编译阶段(created和befor…

Java集合/泛型篇----第一篇

系列文章目录 文章目录 系列文章目录前言一、ArrayList和linkedList的区别二、HashMap和HashTable的区别三、Collection包结构,与Collections的区别四、泛型常用特点前言 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站…

【网络安全 | XCTF】simple_transfer

考察kali基本工具的使用 方法一 打开文件如图: 存在较多协议,将协议分级: 可以看到DLEP协议占比最大: 将其作为过滤器应用: 搜索DLEP: 并没有有利信息,但观察到多数数据包损坏: 执行…

湘潭大学-2023年下学期-c语言-作业0x0a-综合1

A 求最小公倍数 #include<stdio.h>int gcd(int a,int b) {return b>0?gcd(b,a%b):a; }int main() {int a,b;while(~scanf("%d%d",&a,&b)){if(a0&&b0) break;printf("%d\n",a*b/gcd(a,b));}return 0; }记住最大公约数的函数&…

Java进阶(第八期): Java中递归的的使用和递归解决一些算法问题 Java中的异常机制、异常的处理逻辑 自定义异常

文章目录 一、递归1.1 递归的介绍1.2 递归的简单练习1.3 图解递归执行流程&#xff1a;1.4 使用递归完成悲波那契数列1.5 猴子吃桃子问题 二、异常三 、异常的处理逻辑3.1 try catch 捕获异常3.2 throws抛出异常 四、自定义异常 Java进阶&#xff08;第八期&#xff09; 一、递…

深入探索MySQL主从架构与读写分离:提升数据安全和性能的实战指南

一、实验目的与环境 实验目的&#xff1a; MySQL是互联网中广泛使用的开源数据库。在开发时&#xff0c;我们通常使用单机服务&#xff0c;但在生产环境中&#xff0c;由于数据量庞大和高安全性要求&#xff0c;单机MySQL无法满足这些需求。因此&#xff0c;生产环境中的MySQL需…

打砖块,Android休闲小游戏开发

A. 项目描述 《打砖块》是一款经典的休闲小游戏 &#xff0c;结合了经典的图形和音效&#xff0c;给玩家带来了轻松愉快的游戏体验。 该游戏操作简单易上手。玩家只需通过触摸屏幕控制底部的“拍子”左右移动&#xff0c;以反弹“小球” 击碎 顶部的砖块。玩家可以根据球的角度…