关于如何使用 git-filter-repo 隐藏提交记录中的敏感信息

首先,在这里吹一下 new bing ,这玩意实在是太好用了,再也不用使用什么关键词搜谷歌然后翻半天了。只需要使用中文输入一个疑问句,他就可以输出流畅的中文答案,还标注来源。

闲话不多说,下面记录一下 new bing 给出的标准答案:

  1. 确保你已经安装了 Python 并且将它添加到系统的路径中。
  2. 确保你已经安装了 Git 并且将它也添加到系统的路径中。
  3. 下载 git-filter-repo 文件1,并保持它的文件名(git-filter-repo,没有扩展名)。
  4. 如果需要,将文件第一行的 ‘python3’ 替换为 ‘python’(通常在 windows 10/11 上需要)。2
  5. 输入 git --exec-path 命令,找到 Git 的路径。
  6. 将 git-filter-repo 文件移动到那个位置。(Git 的路径)。
  7. 在你的仓库创建一个 expressions.txt 文件,内容如下:literal:foo==>bar
  8. 然后运行:

    git filter-repo --replace-text expressions.txt

  9. 这会修改所有提交,并把其中的 “foo” 替换成 “bar”。

另外,使用指令时,需要确保仓库中没有除了 expressions.txt 以外的未提交内容。如果有,你也可以在 --replace-text 添加一个 --force,这会强制丢掉所有未提交内容并进行替换操作。

然后下面是如何将修改后的仓库推送到远程仓库(以 GitHub 为例):

  1. 删除你的远程仓库,并创建一个新的远程仓库。
  2. 将你修改后的本地仓库推送到新的远程仓库。
  3. 通知其他人使用新的远程仓库,并删除旧的远程仓库。
posted @ 2023-03-09 16:05  FreezeNow  阅读(394)  评论(0编辑  收藏  举报