如何删除GitHub提交及其历史记录?

Kim*_*Kim 5 git version-control github

我的朋友制作了一个配置文件,拿着我们的apikey/token/secrets,以及一个.gitignore忽略所述文件.有人意外地推送到主分支,配置文件保存为另一个名称,现在正在显示.

我想知道是否有办法删除该提交和该提交的历史记录.

我已经看到了这个(下面),我明白这将删除提交并重新推送所有内容.它仍然通过历史/更改显示配置信息:

git reset --hard hash# 

git push -f origin branch
Run Code Online (Sandbox Code Playgroud)

Arp*_*wal 2

git-filter-branch可以帮助您解决您的情况,如下所示:

替换PATH-TO-YOUR-CONFIG-FILE为您要删除的配置文件的路径,而不仅仅是其文件名。

git filter-branch --force --index-filter \
'git rm --cached --ignore-unmatch PATH-TO-YOUR-CONFIG-FILE' \
--prune-empty --tag-name-filter cat -- --all
Run Code Online (Sandbox Code Playgroud)

添加您的配置文件以.gitignore确保您不会意外地再次提交它,然后按照以下命令提交并推送它:

echo "YOUR-CONFIG-FILE" >> .gitignore
git add .gitignore
git commit -m "Add YOUR-CONFIG-FILE to .gitignore"
git push origin --force --all
Run Code Online (Sandbox Code Playgroud)