Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在使用BFG重写git历史记录之后,我需要垃圾收集吗_Git_Bfg Repo Cleaner - Fatal编程技术网

在使用BFG重写git历史记录之后,我需要垃圾收集吗

在使用BFG重写git历史记录之后,我需要垃圾收集吗,git,bfg-repo-cleaner,Git,Bfg Repo Cleaner,我们向我们的bitbucket存储库提交了一些密码,这违反了我们的组织安全政策,因此我使用BFG Repo Cleaner在本地创建镜像,将所有密码替换为已删除的单词 bfg --replace-text passwords.txt my-repo.git 它完成了他们网站上描述的工作,密码确实被删除了 令人惊讶的是它 替换文件中的密码 删除旧的提交 然后做出一些新的承诺 而不是重写历史的基础上旧的承诺 因此,问题是仍然可以从指向旧提交的旧bitbucket url查看密码 我的问题是

我们向我们的bitbucket存储库提交了一些密码,这违反了我们的组织安全政策,因此我使用BFG Repo Cleaner在本地创建镜像,将所有密码替换为已删除的单词

 bfg --replace-text passwords.txt  my-repo.git
它完成了他们网站上描述的工作,密码确实被删除了

令人惊讶的是它

  • 替换文件中的密码
  • 删除旧的提交
  • 然后做出一些新的承诺 而不是重写历史的基础上旧的承诺
因此,问题是仍然可以从指向旧提交的旧bitbucket url查看密码


我的问题是如何从bitbucket或git历史中删除已删除的提交?这又会阻止URL指向已删除/旧提交,显示我们打算删除的密码

解决方案是执行一个“git push--force
”来触发bitbucket的自动gc

但是gc可能会失败,bitbucket正在进行改进,如果出现这种情况,您必须以管理员的身份手动运行repo上的命令

git reflog expire --expire="1 hour" --all
git reflog expire --expire-unreachable="1 hour" --all
git prune --expire="1 hour" -v
git gc --aggressive --prune="1 hour"
注意:强制推送使远程服务器与您的本地分支或主服务器完全相同,从而确保在您更改本地工作树期间,没有其他开发人员使用它