git 撤销已经push到远程的提交

news/2024/7/7 5:56:21 标签: git, elasticsearch, 大数据

git 撤销已经push到远程的提交

  • 1. 情景
  • 2. 解决方法

1. 情景

工作中会有很多时候提交git的时候会提交错东西,而且已经push到远程的话怎么办呢?

2. 解决方法

git_revert_4">2.1 git revert

一种常见的方法是使用 git revert 命令来创建一个新的提交,撤销先前的提交。这种方法会保留撤销提交的历史记录,并且不会改变已经推送到远程仓库的历史记录。

以下是使用 git revert 撤销提交的步骤:

1.确定要撤销的提交的哈希值。可以使用 git log 命令查看提交历史并找到要撤销的提交的哈希值。

2.运行以下命令,将指定提交撤销并创建一个新的撤销提交:
git revert hash(这里是要撤销的提交的哈希值)
3.Git 会打开一个文本编辑器,让你输入撤销提交的相关信息。保存并关闭编辑器。esc,然后:wq

4.Git 会创建一个新的撤销提交,并将其添加到当前分支的历史记录中。

5.最后,使用 git push 命令将新的撤销提交推送到远程仓库: git push origin 将 <branch-name> 替换为你要推送的分支名称。 这样,你就成功地撤销了之前的提交,并在 Git 仓库中创建了一个新的撤销提交。

结果:
在这里插入图片描述

git_reset_22">2.2 git reset

使用 git reset 命令可以彻底删除提交和历史记录,但需要谨慎操作,因为这种操作会改变 Git 仓库的状态,并且可能会影响与他人的协作。以下是使用 git reset 命令彻底删除提交和历史记录的步骤:

注意:在执行以下步骤之前,请确保已经备份了重要的提交和数据,并且确保你了解此操作的潜在风险。

1.确定要删除的提交的哈希值。可以使用 git log 命令查看提交历史,并找到要删除的提交的哈希值。

2.确定你想要回退到的目标提交。这是删除提交后仓库中的最新有效状态。可以使用 git log 命令查看提交历史,并找到要回退到的目标提交的哈希值。

3.运行以下命令,使用 git reset 删除提交和历史记录:

git reset --hard 将 <target-commit-hash>
替换为目标提交的哈希值。 这将使仓库的 HEAD 指针和当前分支指向目标提交,同时删除目标提交之后的所有提交和历史记录。

注意:这个操作是不可逆的,将永久删除提交和历史记录,请确保你真正想要删除这些提交。

4.如果你想要将这些更改推送到远程仓库,你需要使用 git push 命令以 --force 选项推送: git push origin --force 将 <branch-name> 替换为你要推送的分支名称。

注意:由于这种操作会改变 Git 仓库的历史记录,因此使用 --force 选项可能会对其他团队成员造成问题,请确保与团队中的其他成员协商一致,并确保已备份重要数据。
使用 git reset 命令彻底删除提交和历史记录是一项高级操作,慎用为好。在执行之前,请确保你完全了解操作的影响,并在必要时与其他团队成员进行讨论和备份。


http://www.niftyadmin.cn/n/5137597.html

相关文章

模块化时代的必备工具:Webpack详解,为你的项目注入新活力

&#x1f3ac; 江城开朗的豌豆&#xff1a;个人主页 &#x1f525; 个人专栏 :《 VUE 》 《 javaScript 》 &#x1f4dd; 个人网站 :《 江城开朗的豌豆&#x1fadb; 》 ⛺️ 生活的理想&#xff0c;就是为了理想的生活 ! ​ 目录 ⭐ 专栏简介 &#x1f4d8; 文章引言 一…

什么是Vue.js中的指令(directive)?举例说明一些常见的指令。

聚沙成塔每天进步一点点 ⭐ 专栏简介 前端入门之旅&#xff1a;探索Web开发的奇妙世界 欢迎来到前端入门之旅&#xff01;感兴趣的可以订阅本专栏哦&#xff01;这个专栏是为那些对Web开发感兴趣、刚刚踏入前端领域的朋友们量身打造的。无论你是完全的新手还是有一些基础的开发…

Flask后端开发(二) - 功能实现和项目总结

目录 1. 功能1:修改文件参数值1.1. 获取网页端传参1.2. 读取文件1.2.1. 一般文件读取方式1.2.2. 特殊文件 —— mlx文件1.2.3. 特殊文件 —— .xlx文件1.3. 查找数据修改位置,替换数据2. 功能2:读取结果数据2.1. 实时数据展示如何存储相关数据?2.2. 读取相关数据,整理、打…

org.springframework.cloud:spring-cloud-starter-openfeign:jar is missing详解

openfeign无法导入的问题 我感觉最近带的好几个新人在搭建springCloud基础框架的时候&#xff0c;会犯一个非常小的错误&#xff0c;导致进度卡住了。 这个错误就是Feign导入的错误&#xff1a; ‘dependencies.dependency.version’ for org.springframework.cloud:spring-c…

代码随想录算法训练营第6天|242.有效的字母异位词 349. 两个数组的交集 202. 快乐数 1. 两数之和

JAVA代码编写 242. 有效的字母异位词 给定两个字符串 *s* 和 *t* &#xff0c;编写一个函数来判断 *t* 是否是 *s* 的字母异位词。 **注意&#xff1a;**若 *s* 和 *t* 中每个字符出现的次数都相同&#xff0c;则称 *s* 和 *t* 互为字母异位词。 示例 1: 输入: s "a…

使用自动编码器进行半监督异常检测

使用自动编码器进行半监督异常检测 前言前提条件相关介绍Semi-supervised Anomaly Detection using AutoEncoders项目结构训练模型测试模型 参考 前言 由于本人水平有限&#xff0c;难免出现错漏&#xff0c;敬请批评改正。更多精彩内容&#xff0c;可点击进入YOLO系列专栏、自…

一文6个步骤带你实现接口测试入门

一、接口测试概述 1 什么是接口测试&#xff1a; 接口测试是测试系统组件间交互的一种测试。接口测试主要用于检测外部系统与系统之间&#xff0c;内部各个子系统之间的交互点。测试的重点是要检查数据的交换&#xff0c;传递和控制管理过程&#xff0c;以及系统间的相互逻辑…

容斥dp的数学基础

容斥dp的数学基础 本文不涉及&#xff1a; 单位根反演min-max容斥生成函数集合幂级数微积分多项式计数 记号 集合&#xff1a; [ n ] [ 1 , n ] ∩ Z [n][1,n]\cap\mathbb{Z} [n][1,n]∩Z排列数&#xff1a; A n m n m ‾ A^m_nn^{\underline m} Anm​nm​环排列数&#…