小编Aks*_*nya的帖子

从 git 历史记录中永久删除文件

假设我在 git 项目中完成了 5 次提交。

在提交 4 时,我不小心添加了credentials.json 文件并推送到存储库。
在提交 5 时,我删除了该文件并进行了提交,并将此更改推送到存储库。

目前该文件未显示在最新提交中。但是如果用户检查提交历史记录,他可以转到提交 4 并检查我的文件的内容。

如何从提交历史记录中永久删除该文件,以便该文件看起来从未添加到存储库中。

注意:-
我已经尝试过以下命令:-

git filter-branch --force --index-filter \
  "git rm --cached --ignore-unmatch Credentials.json" \
  --prune-empty --tag-name-filter cat -- --all
Run Code Online (Sandbox Code Playgroud)

它不会引发任何错误,但该文件不会从历史记录中删除。

实际上该文件位于 /src 文件夹内。但奇怪的是,当我给出以下命令(包括完整路径)时:-

git filter-branch --force --index-filter   "git rm --cached --ignore-unmatch ~full-path/src/Credentials.json"   --prune-empty --tag-name-filter cat -- --all
Run Code Online (Sandbox Code Playgroud)

我收到错误:- ~full-path/src/Credentials.json 位于存储库外部。

是因为我已经在提交 5 中删除了我的文件吗?在这种情况下我能做什么?
从头开始创建新的存储库是唯一的选择吗?

git github

12
推荐指数
3
解决办法
2万
查看次数

标签 统计

git ×1

github ×1