当前位置: 首页 > article >正文

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

目录

  • 前言
  • 1. 基本知识
  • 2. Demo

前言

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

1. 基本知识

  • 提交记录 (Commit History): 每次提交代码时,Git 会生成一个提交对象,包含提交的变更、提交信息、提交时间和提交人等信息
~ 本地仓库:开发者的工作目录及本地 Git 仓库
远程仓库:GitHub、GitLab 等托管服务上的仓库
  • HEAD 指针: 指向当前分支的最新提交,回滚提交就是移动 HEAD 指针到指定的提交记录

基本的命令如下:

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

  • --soft
    删除提交记录,但保留代码更改在暂存区
    适合需要修改最后几次提交内容时使用

  • --mixed(默认模式)
    删除提交记录,并将更改移动到工作区
    提交被撤销,但代码保留

  • --hard
    删除提交记录,清除所有更改
    注意:操作不可逆,需谨慎使用

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

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

2. Demo

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

示例输出:

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


http://www.kler.cn/a/456305.html

相关文章:

  • linux-21 目录管理(一)mkdir命令,创建空目录
  • 外网访问 Docker 容器的可视化管理工具 DockerUI
  • frameworks 之 WMS添加窗口流程
  • MYSQL初始化数据目录
  • libreoffice在Windows和Linux环境的安装和结合Springboot使用教程
  • 如何在 Ubuntu 22.04 上使用 systemctl 管理 systemd 服务教程
  • 2848、与车相交的点
  • Kafka 数据传输的事务类型
  • SLES网络
  • 【机器学习(九)】分类和回归任务-多层感知机(Multilayer Perceptron,MLP)算法-Sentosa_DSML社区版 (1)111
  • 机器学习随机森林回归时间序列预模型中时间滑动窗口作用以及参数设置
  • 基于openEuler22.09部署OpenStack Yoga云平台(一)
  • 《机器视觉:开启智能新时代》
  • MySQL学习之表查询操作
  • Express.js 有哪些常用的中间件?
  • 【Flutter_Web】Flutter编译Web第三篇(网络请求篇):dio如何改造方法,变成web之后数据如何处理
  • 【Java】线程相关面试题 (基础)
  • 工业安全监测审计系统(源码+文档+部署+讲解)
  • 【我的 PWN 学习手札】IO_FILE 之 stdout任意地址读
  • 普通的树形数据primevue的treetable组件的treetable[ ]
  • android系统查找应用包名以及主activity:
  • WPF 绘制过顶点的圆滑曲线(样条,贝塞尔)
  • 创建用于预测序列的人工智能模型,用Keras Tuner探索模型的超参数。
  • PDF书籍《手写调用链监控APM系统-Java版》第8章 插件与链路的结合:Gson插件实现
  • Arcgis中python工具箱制造要点及统计要素图层字段信息工具分享
  • 【每日学点鸿蒙知识】组件封装通用方法、callback和await性能对比、Web组件下拉刷新、hsp包报错、WebView圆角