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

news2024/11/15 15:58:04

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

  • 1. 情景
  • 2. 解决方法
    • 2.1 git revert
    • 2.2 git reset

1. 情景

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

2. 解决方法

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 仓库中创建了一个新的撤销提交。

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

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.coloradmin.cn/o/1152655.html

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

相关文章

酷开科技,让家庭更有温度!

生活中总有一些瞬间&#xff0c;会让我们感到无比温暖和幸福。一个拥抱、一句问候、一杯热茶&#xff0c;都能让我们感受到家庭的温馨和关爱。酷开科技也用自己的方式为我们带来了独属于科技的温暖&#xff0c;通过全新的体验将消费者带进一个充满惊喜的世界&#xff0c;让消费…

iPhone无法关机未必是坏了!如何修复无法关闭的iPhone

iPhone运行很慢且发热是一个比较罕见的情况&#xff0c;但如果它发生在你身上&#xff0c;下面解释了发生的原因以及你如何修复它。 iPhone无法关闭的原因 iPhone无法关闭的最可能原因是&#xff1a; 由于软件问题&#xff0c;它被冻结了。 睡眠/唤醒按钮坏了。 屏幕坏了&a…

【Redis】环境配置

环境配置 Linux版本&#xff1a; Ubuntu 22.04.2 LTS 下载redis sudo apt install redis 启动redis redis-server 输入redis-server启动redis竟然报错了&#xff0c;原因是redis已经启动&#xff0c;网上大多数的解决方案如下&#xff1a; ps -ef | grep -i redis 查询redi…

软件开发项目文档系列之六概要设计:构建可靠系统的蓝图

概要设计是软件开发项目中至关重要的阶段&#xff0c;它为整个系统提供了设计蓝图和技术方向。它的重要性在于明确项目目标、规划系统结构、确定技术选择、识别风险、以及为团队提供共同的视角&#xff0c;确保项目在后续开发阶段按计划进行。概要设计的主要内容包括项目的背景…

九州未来入选“2023边缘计算产业图谱”三大细分领域

10月26日&#xff0c;边缘计算社区正式发布《2023边缘计算产业图谱》&#xff0c;九州未来凭借深厚的技术积累、优秀的产品服务、完善的产品解决方案体系以及开源贡献&#xff0c;实力入选图谱——边缘计算平台、边缘计算开源、边缘云服务提供商三大细分领域&#xff0c;充分彰…

统信UOS1060上修改sudo权限

原文链接&#xff1a;统信UOS1060上修改sudo权限 hello&#xff0c;大家好啊&#xff0c;今天给大家带来在统信UOS桌面操作系统1060上修改管理员权限&#xff0c;使其在使用sudo的时候&#xff0c;不要输入本用户密码验证的文章&#xff0c;主要通过修改 /etc/sudoers文件实现&…

恒驰服务 | 华为云数据使能专家服务offering之大数据建设

恒驰大数据服务主要针对客户在进行智能数据迁移的过程中&#xff0c;存在业务停机、数据丢失、迁移周期紧张、运维成本高等问题&#xff0c;通过为客户提供迁移调研、方案设计、迁移实施、迁移验收等服务内容&#xff0c;支撑客户实现快速稳定上云&#xff0c;有效降低时间成本…

el-upload 组件上传/移除/报错/预览文件,预览图片、pdf 等功能

目录 页面代码样式代码页面展示 页面代码 dialog.vue <!-- 上传文件 --> <template><el-dialogtitle"上传文件":visible.sync"dialogVisible"width"60%"top"6vh":close-on-click-modal"false"close"h…

中国人民大学与加拿大女王大学金融硕士——在职读研,演绎精彩的人生

为什么在职读研呢&#xff1f;这是对即将读研人的“灵魂拷问”&#xff0c;每个人读研的原因不同&#xff0c;有人因为职业瓶颈&#xff0c;有人晋升需要&#xff0c;还有人为了完成曾经的读研梦想&#xff1b;读书深造是一种经历&#xff0c;不光是学历的加持&#xff0c;我们…

API Testing v0.0.14 新增 gRPC, tRPC 协议的支持

api-testing 本次版本发布中的内容中&#xff0c;包含了两位高校同学的 contribution&#xff0c;其中屈晗煜在GitLink编程夏令营&#xff08;GLCC&#xff09;活动期间非常给力地增加了gRPC 协议的支持。 atest 版本发布 v0.0.14 atest 是一款用 Golang 编写的、开源的接口测试…

Vue3最佳实践 第八章 ESLint 与 测试 ( Jest )

Jest 测试 Vue 组件 ​在前端项目开发过程中&#xff0c;有很多时候也会要进行测试工作。本文将重点介绍如何利用 JavaScript 测试框架 Jest 进行高效的测试。Jest 是由 FaceBook 开发的顶级测试框架之一&#xff0c;广受开发者们的欢迎和信赖。在接下来的内容中&#xff0c;我…

【Ubuntu 系统使用进入,自动进入base虚拟环境解决最全】

项目场景&#xff1a; 在Ubuntu上安装完anaconda后&#xff0c;发现每次打开终端后都会自动进入到base的虚拟环境中去&#xff0c;虽然在这些环境下使用问题不大&#xff0c;但一些软件的安装在虚拟环境下有影响。每次使用conda deactivate退出也很麻烦。 问题描述 安装玩之…

软件测试这些基本类型你知道吗

关于软件测试的类型&#xff0c;从不同角度来讲&#xff0c;可以分很多种&#xff0c;有时候甚至觉得软件测试是人类创造出来的最复杂的职业。。。 对一些常见的测试类型做了一个基本的文档总结&#xff0c;有些测试类型在之前的基础知识里面已经有所介绍&#xff0c;这里就没…

【Python爬虫+可视化】解析小破站热门视频,看看播放量为啥会这么高!评论、弹幕主要围绕什么展开

大家早好、午好、晚好吖 ❤ ~欢迎光临本文章 如果有什么疑惑/资料需要的可以点击文章末尾名片领取源码 环境使用 Python 3.8 Pycharm 模块使用 import requests import csv import datetime import hashlib import time 一. 数据来源分析 明确需求 明确采集网站以及数…

Linux Spug自动化运维平台公网远程访问

文章目录 前言1. Docker安装Spug2 . 本地访问测试3. Linux 安装cpolar4. 配置Spug公网访问地址5. 公网远程访问Spug管理界面6. 固定Spug公网地址 前言 Spug 面向中小型企业设计的轻量级无 Agent 的自动化运维平台&#xff0c;整合了主机管理、主机批量执行、主机在线终端、文件…

Unity HoloLens 2 应用程序发布

设置3D 启动器画面&#xff0c;glb格式的模型 VS中可以直接生成所有大小的图标

C++:快速入门篇

C:.cpp(面向对象) C语音&#xff1a;.c(面向过程)是为了弥补C的不足 命名冲突&#xff1a; 1.写的跟库冲突 2.自己写的互相冲突 1.命名空间 在C/C中&#xff0c;变量、函数和后面要学到的类都是大量存在的&#xff0c;这些变量、函数和类的名称将都存在于全局作用域中&#xff…

mysql扩展语句

&#xff08;一&#xff09;复制表和删除表 &#xff08;二&#xff09;临时表 &#xff08;三&#xff09;mysql的六种约束方式 主键约束 primary key 用于唯一标识表中的每一行&#xff0c;主键列的值必须是唯一而且不能为空&#xff0c;一个表只能有一个主键 外键约束 for…

mysql之语句

1、mysql的扩展语句 &#xff08;1&#xff09;创建表 if not exists yyy&#xff1a;这个表不存在才会创建 zerofill&#xff1a;自动补齐位置 primary key&#xff1a;当前表的主键&#xff0c;主键只能有一个&#xff0c;唯一且不能为空 auto_increment&#xff1a;表示…