如何安全删除 GitHub 提交记录及其操作步骤

目录

  • 前言
  • [1. 基本知识](#1. 基本知识)
  • [2. Demo](#2. Demo)

前言

🤟 找工作,来万码优才:👉 #小程序://万码优才/r6rqmzDaXpYkJZF

1. 基本知识

  • 提交记录 (Commit History): 每次提交代码时,Git 会生成一个提交对象,包含提交的变更、提交信息、提交时间和提交人等信息

: 远程仓库:GitHub、GitLab 等托管服务上的仓库

  • HEAD 指针: 指向当前分支的最新提交,回滚提交就是移动 HEAD 指针到指定的提交记录

基本的命令如下:

git reset 命令

git reset 是修改提交记录的核心命令,主要有以下模式:

  • --soft

    删除提交记录,但保留代码更改在暂存区

    适合需要修改最后几次提交内容时使用

  • --mixed(默认模式)

    删除提交记录,并将更改移动到工作区

    提交被撤销,但代码保留

  • --hard

    删除提交记录,清除所有更改

    注意:操作不可逆,需谨慎使用

强制推送 (git push --force)

本地提交记录修改后,远程仓库的历史会与本地不一致。强制推送将覆盖远程仓库的历史,与本地保持一致。

风险:可能会导致其他开发者无法正常拉取代码

2. Demo

查看提交记录:git log --oneline

示例输出:

sql 复制代码
a1b2c3d 第三次提交
e4f5g6h 第二次提交
i7j8k9l 第一次提交

目标:删除最近两次提交,保留 i7j8k9l

  • 使用 --soft : git reset --soft HEAD~2

    提交记录回退到 i7j8k9l,最近两次提交的代码仍保留在暂存区

  • 使用 --mixed : git reset --mixed HEAD~2

    提交记录回退到 i7j8k9l,最近两次提交的代码保留在工作区,但未暂存

  • 使用 --hard(高风险):git reset --hard HEAD~2

    提交记录和对应代码更改均被清除,无法恢复

最后需要强制推送到远程:git push origin master --force

相关推荐
ice___Cpu1 小时前
Git - 1( 14000 字详解 )
大数据·git·elasticsearch
Yvonne爱编码2 小时前
CSS- 2.1 实战之图文混排、表格、表单
前端·css·html·github·状态模式·html5·hbuilder
qianmoQ11 小时前
GitHub 趋势日报 (2025年05月11日)
github
Yvonne爱编码12 小时前
HTML-3.3 表格布局(学校官网简易布局实例)
前端·html·github·html5·hbuilder
范纹杉想快点毕业17 小时前
以项目的方式学QT开发(一)——超详细讲解(120000多字详细讲解,涵盖qt大量知识)逐步更新!
c语言·数据结构·c++·git·qt·链表·github
qq_6536444618 小时前
如何查看打开的 git bash 窗口是否是管理员权限打开
开发语言·windows·git·bash
tonngw19 小时前
【Mac 从 0 到 1 保姆级配置教程 12】- 安装配置万能的编辑器 VSCode 以及常用插件
git·vscode·后端·macos·开源·编辑器·github
八股文领域大手子20 小时前
HTTP/1.1 host虚拟主机详解
github
橄榄熊21 小时前
Git 常用命令详解
git
HORSE RUNNING WILD1 天前
解决 PicGo 上传 GitHub图床及Marp中Github图片编译常见难题指南
css·python·github