如何安全删除 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

相关推荐
__xu_2 小时前
【git】git生成rsa公钥的方法
git
会说话的吹风机6 小时前
三、GIT与Github推送(上传)和克隆(下载)
git·github
weixin_438732109 小时前
github加速源配置
github
核动力打工仔10 小时前
Git 入门(一)
git
钢盔兔10 小时前
Vscode进行github协从操作
github
bksheng12 小时前
【PyCharm】如何把本地整个项目同步到服务器?
服务器·pycharm·github
hillstream313 小时前
git时常混淆的操作的笔记
笔记·git
会说话的吹风机13 小时前
二、github基础
github
深度学习机器14 小时前
GitHub Copilot免费上线!快速上手指南与功能解析
人工智能·开源·github·copilot
雅X共赏16 小时前
用 cursor 结对编程,一天时间做了个生成 GitHub contribute 卡片的小玩具
前端·github·next.js