撤回仓库的提交

news/2024/9/19 19:02:00/ 标签: git

结论先行

  • 未推送提交:可以使用 git reset --soft HEAD~1git reset --hard HEAD~1 来撤回提交,选择保留或丢弃修改。
  • 已推送提交:可以使用 git reset --soft HEAD~1 后,通过 git push --force 强制覆盖远程的提交记录。

问题描述

我把一个代码修改提交到了 本地的test分支上,但是我现在想撤回,不想提交了,要怎么办

解决

如果你已经将代码提交到本地的 test 分支上,但现在想撤回提交,有以下几种方式可以选择,具体取决于你是否已经推送了提交到远程仓库。

1. 撤回未推送的提交

如果你提交了代码但还没有推送到远程仓库,想要撤回,可以使用以下方法:

git_reset__15">使用 git reset 撤回提交

git reset 可以撤回最近的提交并保留修改在工作区中。

git reset --soft HEAD~1
  • --soft:撤销提交,但保留代码变更在暂存区(相当于你还没有 git add 的状态)。
  • HEAD~1:表示回退到当前提交的前一个提交。

结果:
你的提交记录会被撤销,但代码依然存在,可以继续修改或选择不提交。

git_reset_hard__28">使用 git reset --hard 完全撤销

如果你不仅想撤回提交,还想丢弃代码修改,可以使用 --hard

git reset --hard HEAD~1
  • --hard:不仅撤销提交,还会清除工作区的所有修改。

注意:
使用 --hard 会丢失未保存的修改,所以要谨慎使用。

2. 撤回已经推送到远程的提交

如果你已经将提交推送到远程仓库,还可以撤回提交,但需要使用 git push --force

git_reset__44">使用 git reset 回退并强制推送

首先,使用 git reset 撤销本地提交:

git reset --soft HEAD~1

然后,强制推送到远程仓库,覆盖已经推送的提交:

git push --force

注意:
强制推送会覆盖远程仓库的历史记录,其他开发者如果基于这些提交做了修改,可能会造成问题,所以在多人协作时需要小心使用。


总结:

  • 未推送提交:可以使用 git reset --soft HEAD~1git reset --hard HEAD~1 来撤回提交,选择保留或丢弃修改。
  • 已推送提交:可以使用 git reset --soft HEAD~1 后,通过 git push --force 强制覆盖远程的提交记录。

http://www.ppmy.cn/news/1527727.html

相关文章

react 组件通讯

组件通讯 组件是独立且封闭的单元,默认情况下,只能使用组件自己的数据。在组件化过程中,我们将一个完整的功能拆分成多个组件,以更好的完成整个应用的功能。而在这个过程中,多个组件之间不可避免的要共享某些数据。为…

东方博宜 24年9月-A组(萌新)- 巧克力

题目描述 假期快要结束了,小 A 打算好好犒劳一下自己,一路小跑来到超市,看到货架上的各种巧克力,都是自己爱吃的,一口气抓了一堆,有黑巧克力,白巧克力,牛奶巧克力,总共 …

【Java】网络编程:TCP_IP协议详解(IP协议数据报文及如何解决IPv4不够的状况)

🌈个人主页:努力学编程’ ⛅个人推荐: c语言从初阶到进阶 JavaEE详解 数据结构 ⚡学好数据结构,刷题刻不容缓:点击一起刷题 🌙心灵鸡汤:总有人要赢,为什么不能是我呢 &#x1f354…

Java 中使用 Redis 的几种方式优缺点对比

一、为什么选择 Redis? 在分析 Java 中使用 Redis 的不同方式之前,我们需要了解为什么 Redis 在分布式应用中如此重要。以下是 Redis 在 Java 项目中常见的应用场景: 缓存:通过将热点数据缓存到 Redis,可以减少数据库…

计算机网络 第三章: 点对点协议

文章目录 点对点协议PPP概述PPP的帧格式PPP桢的透明传输PPP帧的差错检测PPP的工作状态 点对点协议PPP概述 点对点协议(Point-to-Point Protocol,PPP)是目前使用最广泛的点对点数据链路层协议。 点对点协议PPP是因特网工程任务组&#xff08…

什么是蜘蛛池?有什么作用

在网络爬虫的世界里,蜘蛛池(Spider Pool)是一个专门用于管理和维护大量爬虫的系统。它为爬虫提供了一个集中的工作环境,使得爬虫能够更高效、更稳定地进行数据抓取。本文将探讨蜘蛛池的概念、组成以及它在现代网络爬虫技术中的作用…

CSU18M91四电极测脂模块开发体脂秤方案

一台体脂秤通过测试体重、体脂、BMI、水分等数据并给出相应提示,并且许多人都将体脂检测数据作为身体健康指数衡量标准,辅助用户来关注身体健康,同时可以通过蓝牙与手机APP应用相连,记录日常身体变化情况,根据变化情况…

黑神话悟空mac可以玩吗

黑神话悟空mac上能不能玩对于苹果玩家来说很重要,那么黑神话悟空mac可以玩吗?目前是玩不了了,没有针对ios系统的版本,只能之后在云平台上找找了,大家可以再观望下看看。 黑神话悟空mac可以玩吗 ‌使用CrossOver‌&…

前端面试常见手写题

实现一个new操作符 //实现一个new操作符 function myNew(fn,...args){if(typeof fn ! function) {throw (fn is not a function)}//将对象的原型设置为fn的prototypelet resObject.create(fn.prototype)//使用 apply 执行构造函数 并传入参数 arguments 获取函数的返回值let r…

区块链审计 如何测试solidity的bool值占用几个字节

文章目录 艾里卡的bool类型有多大?代码环节 艾丽卡更精确的测试bool代码环节 bool的gas疑惑? 艾里卡的bool类型有多大? 木森和艾丽卡坐在他们的实验室里,面前摆着一本魔法书和一些奇怪的魔法工具。他们正在进行一项重要的研究——…

Spring Boot-静态资源管理问题

在Spring Boot中,静态资源管理是构建现代Web应用程序时必不可少的一部分。无论是处理静态页面、图片、CSS、JavaScript文件,还是一些自定义文件,正确管理这些资源能够提升用户体验和优化应用的性能。 1. Spring Boot中的静态资源管理概述 S…

RedisTemplate混用带来的序列化问题

最近在工作中发现一个现象,项目中使用了不同的 RedisTemplate 来操作redis,有的同事用默认的 RedisTemplate ,有的同事用 StringRedisTemplate。这就导致了我本次遇到的问题: 在一次需求中,我需要从 redis 中取值&…

在单片机中,处于高阻态是什么状态

在单片机(微控制器)中,高阻态(High-Z,High Impedance State)是指引脚的电气特性类似于没有连接状态,即该引脚的电流非常小,几乎不对电路产生影响。具体来说,高阻态具有以…

爬虫逆向学习(六):补环境过某数四代

声明:本篇文章内容是整理并分享在学习网上各位大佬的优秀知识后的实战与踩坑记录 引用博客: https://blog.csdn.net/shayuchaor/article/details/103629294 https://blog.csdn.net/qq_36291294/article/details/128600583 https://blog.csdn.net/weixin_…

Spring Cloud Config 配置中心

在java开发中难免会涉及到配置文件,比如连接数据库配置、连接一些中间件配置、一些阈值或开关参数等等。我们一般存放到properties或yml文件中,然后应用部署启动的时候读取这些配置项。在分布式系统中,多个服务需要访问和管理配置。如果每个服…

第十章 【后端】环境准备(10.9)——Navicat

10.9 Navicat Navicat Premium 官网 下载 下载地址:https://www.navicat.com.cn/download/navicat-premium-lite 安装 一路“下一步”即可。 连接 `MySql’

61. 扑克牌中的顺子

comments: true difficulty: 简单 edit_url: https://github.com/doocs/leetcode/edit/main/lcof/%E9%9D%A2%E8%AF%95%E9%A2%9861.%20%E6%89%91%E5%85%8B%E7%89%8C%E4%B8%AD%E7%9A%84%E9%A1%BA%E5%AD%90/README.md 面试题 61. 扑克牌中的顺子 题目描述 从若干副扑克牌中随机抽…

新书速览|NestJS全栈开发解析:快速上手与实践

《NestJS全栈开发解析:快速上手与实践》 本书内容 《NestJS全栈开发解析:快速上手与实践》旨在帮助读者快速掌握NestJS(简称Nest)开发,并应用于实战项目。本书共10章,首先介绍基本概念,为读者打下坚实的知识基础。接着…

Redis 5.0.4 安装教程

目录 1. 上传并解压 2. 安装 GCC 编译环境 3. 编译 Redis 源代码 4. 安装 Redis(可选) 5. 启动 Redis 6. 配置自定义路径和后台运行(可选) Redis 是一个高性能的键值对存储系统。本文将详细介绍如何在 Linux 系统上安装 Red…

数据治理实施步骤

数据治理的实施步骤是一个系统性的过程,旨在确保数据的有效管理、使用和保护。以下是数据治理的一般实施步骤: 一、明确目标和策略 确定需求与目标:明确数据治理的需求和目标,如提高数据质量、保障数据安全、提升数据处理效率等。…