📌  相关文章
📜  github 从历史记录中删除 env 文件 - Shell-Bash (1)

📅  最后修改于: 2023-12-03 14:41:30.500000             🧑  作者: Mango

GitHub 从历史记录中删除 env 文件 - Shell-Bash

该文章将帮助你从 GitHub 的历史记录中永久删除 env 文件。本文中的方法将会销毁 git 的历史记录,因此请注意在执行此操作之前进行备份。

步骤 1: 克隆存储库

使用 git 克隆需要删除 env 文件的存储库。假设该存储库的 URL 为 https://github.com/example/example.git ,执行以下命令:

git clone https://github.com/example/example.git
步骤 2: 创建 .git-filter-file

在 clone 的存储库中创建 .git-filter-file 并将以下内容复制到文件中:

#git filter that will identify any matching files of the desired pattern, and filter them from history.
git filter-branch --tree-filter 'rm -f PATH_TO_YOUR_ENVFILE' --prune-empty HEAD

请将 PATH_TO_YOUR_ENVFILE 替换为您想要删除的 env 文件路径。

将所需的 env 文件路径更新为正确的路径。请注意,在执行此操作之前请做好备份。

步骤 3: 执行命令

在存储库目录中打开终端并运行以下命令:

chmod +x .git-filter-file
./.git-filter-file
rm -rf .git/refs/original/ && git reflog expire --all &&  git gc --aggressive --prune=all

以上命令将进行以下操作:

  1. 设置 .git-filter-file 具有可执行权限。
  2. 执行 .git-filter-file 脚本以删除 env 文件。
  3. 从存储库的 .git 目录中删除 refs/original 目录。
  4. 更新引用日志,以便清除所有不再需要的引用。
  5. 使用 --aggressive 和 --prune=all 标志运行 git 清理命令,以清除垃圾对象和过时引用。
步骤 4: 推送更改以更新存储库

现在,您必须使用以下命令来推送更新以更新存储库:

git push --force origin master

注意:这将强制推送一个新的 commit 序列,因此请确保没有重要的更改丢失。

结论

以上就是如何从 GitHub 存储库中永久删除 env 文件。请谨慎运用这些操作,并始终记得在更改存储库之前备份。