当前位置:   article > 正文

如何删除GitHub中的所有提交历史记录,但将代码保持在当前状态_git如何清除commit的记录,并且保留代码

git如何清除commit的记录,并且保留代码

前几天自己在做一个测试项目的时候,不小心提交了敏感信息,于是希望删除那一次的提交记录。经过一番搜索找到了一个方法,但是在操作的过程中没有找到提交敏感信息的那一次的哈希值,所以被迫放弃。
最终,我决定删除所有的提交记录,但是代码保持到现在的状态,不回退代码。

以下是我搜集到的方法,亲测可用:

  • 删除.git文件夹可能会导致git存储库中的问题。如果要删除所有提交历史记录,但将代码保持在当前状态,可以按照以下方式安全地执行此操作:
  • 下面的操作会删除原分支,所以操作之前务必确定当前的本地代码是最新的,或者是你想要的版本代码,或者做好本地备份。

1.在终端运行 git checkout --orphan latest_branch

PS D:\project\其他项目\myDemo> git checkout --orphan latest_branch
Switched to a new branch 'latest_branch'
  • 1
  • 2

2.添加所有文件 git add -A

PS D:\project\其他项目\myDemo> git add -A
  • 1

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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

4.删除分支 git branch -D master
因为我用的main分支,所以删除mian分支

PS D:\project\其他项目\myDemo> git branch -D master
Deleted branch master (was a40a396).
  • 1
  • 2

5.将当前分支重命名 git branch -m master

PS D:\project\其他项目\myDemo> git branch -m master
  • 1

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.
  • 1
  • 2
  • 3

以上就是全部的操作步骤。
提交以后在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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17

2.定位你误操作的那一个版本,我们取它之前的版本的哈希值。

3.使用"git reset —hard xxxxxxxxxxxxxxxx"操作,将历史记录重置到这个版本。

4.使用"git push origin HEAD —force",push到github。

如果有问题,欢迎留言。

本文内容由网友自发贡献,转载请注明出处:https://www.wpsshop.cn/w/秋刀鱼在做梦/article/detail/992757
推荐阅读
相关标签
  

闽ICP备14008679号