Git 撤销一个已经push到远端仓库的commit

news2024/11/6 3:09:19

在 Git 中,撤销一个已经推送到远程仓库的改动有几种不同的方法,具体取决于你是否想要完全删除改动,还是只是恢复文件的某个状态。以下是常见的几种方法:

git revert 撤销特定的commit

git revert 是最安全的方法,因为它会生成一个新的 commit 来撤销之前的改动,而不会改变提交历史。
步骤:

1.找到你想要撤销的 commit 的哈希值:

git log

找到要撤销的提交的哈希值(如:abc123)。

2.使用 git revert:

git revert abc123

这会创建一个新的 commit,反向应用你指定的提交的更改。

3.推送新的提交:

git push origin branch_name

优点:不会修改历史记录,只会产生一个新的 commit 来撤销不需要的更改。
缺点:这种方法会导致本地修改也被删除,比如说你想push本地的某一个改动上去,结果不小心push了很多改动,这种操作会导致你的本地改动全部丢失。
在这里插入图片描述

使用 git reset 重置到某个状态

git reset 可以将分支重置到指定的提交点。如果你想要完全撤销推送的改动并修改历史,可以使用这个方法。但这种方式修改历史,可能会影响其他团队成员。

软重置:

如果你不想丢失工作区的更改(比如你想保留修改但不想提交),可以用软重置。

git reset --soft HEAD~1

这个命令会撤销最后一次提交的改动,但保留修改在工作区中。

硬重置:

如果你想要彻底移除提交,并丢弃工作区的更改,可以用硬重置。

git reset --hard HEAD~1

这个命令会重置到上一个 commit,并丢弃工作区中的所有改动。

强制推送:

使用 git reset 之后,你需要强制推送到远程仓库。

git push origin branch_name --force

注意:git reset --hard 会修改提交历史,且需要使用 --force 推送,会覆盖远程仓库的历史记录,其他开发人员的本地仓库可能会因此出问题。通常建议谨慎使用这种方式,特别是在共享的分支上。
使用这种方法需要谨慎,因为这个会修改分支上的提交内容,导致共享分支可能出现问题。

如果有多个提交需要撤销

如果要撤销多个提交(例如最后 3 个提交),可以使用:

git revert HEAD~3..HEAD

或者使用 reset:

git reset --hard HEAD~3
git push --force

总结:

如果想要保留历史记录,使用 git revert。
如果你想完全删除某次提交,并修改历史,使用 git reset 然后强制推送 (–force)。
选择方法时要小心,尤其是在共享分支上修改历史时。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【MySQL 05】表的约束

目录 1.约束的概念 2 空属性约束 3.默认值约束 4. 列描述(comment) 5.补零(zerofill) 6.主键约束 (primary key) 基本案例 主键的删除与添加 复合主键 复合主键的删除与添加 7. 自增长约束&#xf…

vue3【实战】响应式主题(实时获取页面比例,指定尺寸内按比例缩放,超过指定尺寸保持高度不变的图片)

实时获取页面比例 移动端设计稿通常为 750px当前窗口的宽为 window.innerWidth通过 useResizeObserver 可实时监听窗口大小的变化 src/stores/theme.ts export const useThemeStroe defineStore(theme, () > {const rate ref(0)function setRate(newRate: number) {rate…

系统分析师13:软件工程

文章目录 1 内容概要2 信息系统的生命周期2.1 单个系统开发周期 3 软件开发方法4 软件开发模型4.1 概述4.2 其他经典模型4.3 瀑布模型4.4 V模型4.5 喷泉模型4.6 W模型4.7 迭代与增量4.8 增量模型与螺旋模型4.9 构建组装模型4.10 快速应用开发模型(RAD)4.…

SQL Server的关系代数(选择投影连接除)

目录 1.博客素材来源 2.传统的关系运算 3.专门的关系运算 3.1选择: 3.2投影: 3.3自然连接: 3.4等值链接: 3.5自然连接: 3.6除法: 1.博客素材来源 这个是某个大学老师在新冠时候的这个线上课程&am…

Redisson分布式锁的概念和使用

Redisson分布式锁的概念和使用 一 简介1.1 什么是分布式锁?1.2 Redisson分布式锁的原理1.3 Redisson分布式锁的优势1.4 Redisson分布式锁的应用场景 二 案例2.1 锁竞争案例2.2 看门狗案例2.3 参考文章 前言 这是我在这个网站整理的笔记,有错误的地方请指出&#xff…

maven报错:Unresolved plugin ‘org.apache.maven.pluginsmaven-resources-plugin‘

maven报错:Unresolved plugin: ‘org.apache.maven.plugins:maven-resources-plugin‘ 最近初学java,这里记录一下报错出现的原因以及解决办法 问题示例 如图所示,就是在创建一个项目之后对应插件的部分有爆红 问题出现的原因 简单来说就…

Pygame中Sprite实现逃亡游戏3

在《Pygame中Sprite实现逃亡游戏2》中实现了飞龙和飞火的显示。接下来实现玩家跳跃效果,如图1所示。 图1 玩家跳跃效果 1 按键响应 当玩家按下键盘中空格按键后,游戏中的玩家就会跳跃,用于躲避飞火。在while True循环判断按键的代码中&…

开放原子开源基金会网站上的开源项目EasyBaaS存在内存泄露缺陷

今天我仍然发布一个开放原子开源基金会网站上的开源项目EasyBaaS,这个开源项目的捐赠主体是招商银行股份有限公司。该项目的是一个基于Linux环境的区块链节点管理工具,提供一键部署节点、实时监控及管理运维等功能,从搭建节点、启停节点、节点…

Python | Leetcode Python题解之第436题寻找右区间

题目: 题解: class Solution:def findRightInterval(self, intervals: List[List[int]]) -> List[int]:n len(intervals)starts, ends list(zip(*intervals))starts sorted(zip(starts, range(n)))ends sorted(zip(ends, range(n)))ans, j [-1]…

Qt网络编程——QTcpServer和QTcpSocket

文章目录 核心APITCP回显服务器TCP回显客户端 核心API QTcpServer用于监听端口和获取客户端连接 名称类型说明对标原生APIlisten(const QHostAddress&, quint16 port)方法绑定指定的地址和端口号,并开始监听bind和listennextPendingConnection()方法从系统中获…

【2024/9/25更新】最新版植物大战僵尸V2.5.1发布啦

下载链接⬇️⬇️ 最新版V2.5.1下载 点击下载 历史版本下载 点击下载 更新公告 2.5.1版本更新公告: 关卡阅整 两面夹击关卡系列关卡降低出怪倍率 两面夹击关卡出怪种类调整 两面夹击部分关卡初始阳光调整 两面夹击关卡中可使用投手类植物- 两面夹击关卡中的脑子血量…

远程升级频频失败?原因竟然是…

最近有客户反馈在乡村里频繁出现掉线的情况。 赶紧排查原因! 通过换货、换SIM卡对比排查测试,发现只有去年采购的那批模块在客户环境附近会出现掉线的情况,而今年采购的模块批次就不会掉线。。。 继续追究原因,联系对应的销售工…

基于springboot vue 大学生竞赛管理系统设计与实现

博主介绍:专注于Java vue .net php phython 小程序 等诸多技术领域和毕业项目实战、企业信息化系统建设,从业十五余年开发设计教学工作 ☆☆☆ 精彩专栏推荐订阅☆☆☆☆☆不然下次找不到哟 我的博客空间发布了1000毕设题目 方便大家学习使用 感兴趣的…

路径报错问题

项目场景: 假设这是我的项目结构,我现在需要在aa.js文件中引入并使用aa.geojson文件, 问题: 当我引入路径是const filePath ../geo/aa.geojson;的时候,系统报错 "aa.geojson is not Found",找不…

【WRF数据介绍第二期】气象驱动场数据介绍及下载

WRF数据介绍第二期:气象驱动场数据介绍及下载 WRF官网-Free Data数据下载 EAR5数据数据下载 参考 WRF运行流程如下,所需的外部数据源包括静态地理数据(Static Geography Data)和网格气象数据(Gridded Meteorological D…

基于AI网关的智慧煤矿安全监测应用

煤矿安全一直是矿业管理的重中之重。由于煤矿环境的恶劣与复杂性,例如工作中间环节多、设施设备多样且集中、空间狭小、环境闭塞、有害气体隐患、粉尘聚集等,针对煤矿的安全监测和防范时常面临着极大的挑战。 随着AI技术的发展与普及,依托AI实…

关于前端框架的对比和选择

成长路上不孤单😊😊😊😊😊😊 【14后😊///C爱好者😊///持续分享所学😊///如有需要欢迎收藏转发///😊】 今日分享关于【前端框架的对比和选择】相关内容&…

力扣 中等 275.H指数

文章目录 题目介绍题解 题目介绍 题解 h指数不一定都满足citations[mid] n - mid,例如[0,1,4,5,6]的h指数是3。 题目说了用对数时间复杂度来实现,说明一定是用二分法,草纸上推导一下即可得出以下代码。 class Solution {public int hInde…

MySQL自动测试框架Test Framework工具实践

导读 之前的文章(《MySQL自动测试框架Test Framework浅析》)从源码级别对MySQL自动测试框架Test Framework进行了简要分析,本文接下来从实践的角度介绍Test Framework工具的使用方法。 1 简介 Test Framework主要应用于MySQL等相关数据库项…

Docker 容器技术:颠覆传统,重塑软件世界的新势力

一、Docker简介 什么是docker Docker 是一种开源的容器化平台,它可以让开发者将应用程序及其所有的依赖项打包成一个标准化的容器,从而实现快速部署、可移植性和一致性。 从功能角度来看,Docker 主要有以下几个重要特点: 轻量…