当前位置: 首页 > news >正文

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

在 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.lryc.cn/news/450560.html

相关文章:

  • lambda表达式底层实现
  • 鸿蒙NEXT开发-组件事件监听和状态管理(基于最新api12稳定版)
  • 《More Effective C++》的学习
  • Leetcode面试经典150题-322.零钱兑换
  • python17_len()函数
  • 车视界系统小程序的设计
  • SQLCMD命令行工具导入数据并生成对应的日志文件
  • tauri中加载本地文件图片或者下载网络文件图片后存储到本地,然后通过前端页面展示
  • QSqlDatabase在多线程中的使用
  • 【无人机设计与控制】Multi-UAV|多无人机多场景路径规划算法MATLAB
  • Visual Studio C# 编写加密火星坐标转换
  • 微服务-流量染色
  • C语言实现 操作系统 经典的进程同步问题(2)
  • 有效的字母异位词【字符串哈希】
  • 如何选择与运用工具提升工作效率的秘密指南
  • Spring系列 AOP实现过程
  • C语言 getchar 函数完全解析:掌握字符输入的关键
  • Docker安装mysql8并配置主从复制
  • 快手:数据库升级实践,实现PB级数据的高效管理|OceanBase案例
  • 基于Node.js+Express+MySQL+VUE实现的计算机毕业设计共享单车管理网站
  • 人工智能辅助的神经康复
  • KKT实际运用 -MATLAB
  • php在线相册
  • Xcode手动安装SDK模拟器
  • Docker安装consul + go使用consul + consul知识
  • JWT 漏洞 - 学习手册
  • HTML【知识改变命运】03font 字体标签
  • 集师专属知识付费小程序搭建 心理咨询小程序搭建
  • https://www.aitoolpath.com/ 一个工具数据库,目前储存了有2000+各种工具。每日更新
  • 科技的成就(六十三)