赞
踩
前几天自己在做一个测试项目的时候,不小心提交了敏感信息,于是希望删除那一次的提交记录。经过一番搜索找到了一个方法,但是在操作的过程中没有找到提交敏感信息的那一次的哈希值,所以被迫放弃。
最终,我决定删除所有的提交记录,但是代码保持到现在的状态,不回退代码。
以下是我搜集到的方法,亲测可用:
.git
文件夹可能会导致git存储库中的问题。如果要删除所有提交历史记录,但将代码保持在当前状态,可以按照以下方式安全地执行此操作:1.在终端运行 git checkout --orphan latest_branch
PS D:\project\其他项目\myDemo> git checkout --orphan latest_branch
Switched to a new branch 'latest_branch'
2.添加所有文件 git add -A
PS D:\project\其他项目\myDemo> git add -A
3.提交更改 git commit -am “commit message”
PS D:\project\其他项目\myDemo> git commit -am "提交备份"
[latest_branch (root-commit) 31b41e3] 提交备份
99 files changed, 7931 insertions(+)
create mode 100644 .DS_Store
create mode 100644 .gitignore
create mode 100644 .mvn/wrapper/MavenWrapperDownloader.java
create mode 100644 .mvn/wrapper/maven-wrapper.jar
create mode 100644 .mvn/wrapper/maven-wrapper.properties
4.删除分支 git branch -D master
因为我用的main分支,所以删除mian分支
PS D:\project\其他项目\myDemo> git branch -D master
Deleted branch master (was a40a396).
5.将当前分支重命名 git branch -m master
PS D:\project\其他项目\myDemo> git branch -m master
6.最后,强制更新存储库 git push -f origin master
第一次提交出现了错误,重新尝试了一次成功了。
PS D:\project\其他项目\myDemo> git push -f origin master
Enumerating objects: 136, done.
Counting objects: 100% (136/136), done.
以上就是全部的操作步骤。
提交以后在GitHub上就是新提交的代码了,之前的记录被删除了但是代码没有变。如果包含敏感信息的分支没有被删除,可以手动删除。
上面的方法其实是新建一个分支,然后把现在的代码推到新建的分支上,然后删除原来的分支。这样做也就删除了原来的所有的提交记录。
下面是删除单次提交记录的方法,由于没有找到我的那次哈希值,被迫放弃。
1.在终端使用"git log"查看提交记录。Github会为每一次commit操作生成哈希值,用这个哈希值来记录你的提交记录。
commit 6817b730638833e9baa25d6842506aexxxxxxxx Author: fmz200 Date: Sat Aug 14 21:23:58 2021 +0800 优化代码逻辑 commit 00e58dbd5e1f76f26ec3b6f8fde0d307xxxxxxxx Author: fmz200 Date: Sat Aug 14 21:16:49 2021 +0800 优化代码逻辑 commit ed97f68ef1bd13480d95d453cc5a4942xxxxxxxx Author: fmz200 Date: Fri Aug 13 16:31:54 2021 +0800 add Utils
2.定位你误操作的那一个版本,我们取它之前的版本的哈希值。
3.使用"git reset —hard xxxxxxxxxxxxxxxx"操作,将历史记录重置到这个版本。
4.使用"git push origin HEAD —force",push到github。
如果有问题,欢迎留言。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。