删除GitHub上的历史commit

简介: 1. 背景 由于之前的加水印脚本存在问题,在对同一张图片进行加水印时,会有一定的概率产生不一样md5的图片,在git提交的时候,就认为被修改了,从而被提交的github仓库中,如此反反复复,到现在已经有11个G大小了;今天把水印脚本重写了一下,解决了上述问题,所以准备给之前的垃圾提交清理了,让我的博客变成一个“新库”。

1. 背景

由于之前的加水印脚本存在问题,在对同一张图片进行加水印时,会有一定的概率产生不一样md5的图片,在git提交的时候,就认为被修改了,从而被提交的github仓库中,如此反反复复,到现在已经有11个G大小了;今天把水印脚本重写了一下,解决了上述问题,所以准备给之前的垃圾提交清理了,让我的博客变成一个“新库”。

blogSize

2. 过程

创建并切换到孤儿分支(该分支与现有分支无关,完全独立)

git checkout --orphan d4m1ts

当前文件夹下的所有内容都被默认添加到暂存区,直接commit提交即可

git commit -m "更新水印,从头做起"

删除原来的分支(默认是master,也有可能是main

git branch -D master

把当前分支重命名为主分支

 git branch -m master

强行推送到远程仓库

git push -f origin master

push成功

3. 效果

历史commit被清除

github

重新clone,也是正常大小,不携带历史commit

重新clone

4. 风险

  1. 代码丢失: 删除历史 commit 可能会导致一些代码丢失,这可能会影响到项目的完整性和可用性。
  2. 团队合作受影响: 如果多个人在同一个分支上工作,删除 commit 可能会影响到其他人的工作。如果其他人使用被删除的 commit 进行工作,他们可能会遇到错误,这可能会导致协作的停滞和沟通的困难。
  3. Git 历史记录混乱: 删除 commit 可能会导致 Git 历史记录变得混乱不清。如果您不小心删除了重要的 commit,您可能会失去对项目演变的完整历史记录。这可能会导致对项目的分支、合并和代码审查的跟踪困难。
  4. 代码库中的依赖关系受到影响: 如果项目中的其他组件依赖于被删除的 commit,删除 commit 可能会导致依赖关系的破坏。这可能会导致其他组件无法正常工作,或者可能需要花费大量的时间来修复问题。
目录
相关文章
|
存储 前端开发 Unix
Github对Git commit date操作的诸多细节,你注意到了么
我们开发人员几乎每天都要使用git commit,但你知道他对时间处理的一些细节吗?一起来了解一下吧
317 0
|
开发工具 git
【Git&GitHub - 5】:Git添加文件并提交到本地(git status、git add、git commit、git log命令的使用)
【Git&GitHub - 5】:Git添加文件并提交到本地(git status、git add、git commit、git log命令的使用)
209 0
【Git&GitHub - 5】:Git添加文件并提交到本地(git status、git add、git commit、git log命令的使用)
VsCode插件一键刷Github的commit记录-AutoCommit
autoCommit 用于刷commit记录,可以刷过去几年的commit以及未来的commit, 一键帮你把github首页的绿色格子填满。 它是一个VScode插件可以自由控制commit日期(提交过去几年的commit以及未来的commit) 它可以自由控制commit次数, 固定或者随机commit次数。 插件提供完善的日志: 清晰的了解插件的运行情况 使用效果 使用本插件来控制commit次数. 如下图,你甚至可以规划一下commit次数,然后画出图形, 天空才是你的极限。 自动commit演示: 功能特性 一键提交: 设置好参数之后,一键超快提交commit 选择
817 0
VsCode插件一键刷Github的commit记录-AutoCommit
如何抹掉 github 上的 commit 记录?(慎用)
如何抹掉 github 上的 commit 记录?(慎用)
379 0
|
Shell 开发工具 数据安全/隐私保护
curl快速下载GitHub Repo指定commit的tar.gz
有些时候需要下载GitHub仓库的tar.gz来做一些其他操作; 这时候可能最常见的就是去GitHub上找release或者tag里面有提供tar.gz的资源; 然后点击下载~~ 但是有些场景可能这种操作就不是很方便了,比如给客户打包源码的; 快速指定git的tag或者某个commit_hash , download下来 然后对于源码做一些加密什么的,再给到客户现场构建部署~; 这时候我们就会考虑以脚本来切入,以配置文件的姿势来录入一些参数, 然后快速拿到一些我们需要的资源~ 这里举一个比较单一的场景来开展这篇文章,往下看~
1555 0
|
开发工具 git Linux
github 使用“git commit -m"命令时候出现的一个小问题
git commit -m 使用问题 今天提交文件到github,步骤是: git add abc.py (abc.py是我当前随意写的一个文件名) git commit -m 'add codes for abc' git push origin 在第二步是,出现错误,错误如下: D:\te...
2074 0
|
1月前
|
编解码 Oracle Java
java9到java17的新特性学习--github新项目
本文宣布了一个名为"JavaLearnNote"的新GitHub项目,该项目旨在帮助Java开发者深入理解和掌握从Java 9到Java 17的每个版本的关键新特性,并通过实战演示、社区支持和持续更新来促进学习。
70 3
|
3月前
|
SQL JavaScript 前端开发
Github 2024-08-05 开源项目周报 Top15
根据 Github Trendings 的统计,本周(2024年8月5日统计)共有15个项目上榜。以下是根据开发语言汇总的项目数量: - Go 项目:4个 - JavaScript 项目:3个 - Python 项目:3个 - Java 项目:2个 - TypeScript 项目:2个 - C 项目:1个 - Shell 项目:1个 - Dockerfile 项目:1个 - 非开发语言项目:1个
91 2