我需要从Web应用程序和git历史记录中删除配置文件。我已经使用bfg回购清理器工具完成了此操作。我完成了文档中概述的步骤:
我将结果推送到gitlab中的新存储库。文件已从历史记录中删除。我可以签出旧的提交,但文件不会掉下来。
但是,当我查看涉及Web.config文件的提交的详细信息时,更改部分显示了Web.config文件的差异。因此,仍然有可能看到配置文件的文本。
我在使用bfg工具时是否怀念某些东西?还是工具不会改变?如何从提交更改摘要中删除文件?
答案 0 :(得分:0)
不仅仅是*.config
文件仅在最后一次提交中吗?
BFG不会修改此提交,所以也许就是您所看到的。...
来自BFG doc:
您当前的文件是神圣的...
BFG对待您就像是经过改良的酒鬼:过去您犯了一些错误,但是现在您已经清理了行为。因此,BFG假设您的最新提交是一个不错的提交,您没有想要从历史记录中删除的脏文件。 BFG的这一假设可以保护您的工作,并且让您放心,因为BFG只会更改您的回购历史记录,而不会干预您项目的当前文件。
答案 1 :(得分:0)
但是,当我查看涉及Web.config文件的提交的详细信息时, 更改部分显示了Web.config文件的差异。所以还是 可能会看到配置文件的文本。
不幸的是,解释历史重写的方式有许多细微差别,并且上面的描述是模糊的-您在哪里看到的?您是针对本地仓库执行diff命令,还是在GitLab上查看网址? -提供屏幕截图,网址或您正在调用的示例Git命令,对于此处的诊断非常有用。
我将假设您正在查看这样的URL,其中一个提交ID(例如e081c0cba2dd5b1a19d22b44918022f72035434c
)是该URL的一部分:
https://gitlab.com/gitlab-org/gitlab-ce/commit/e081c0cba2dd5b1a19d22b44918022f72035434c
在这里要意识到的重要一点是,提交ID是该提交文件树的内容的散列,以及导致该提交的整个提交历史。因此,如果您更改提交的历史记录,则会获得一个新的提交ID。如果您查看旧的提交ID-您将看到旧的提交数据和旧的提交文件树。
最终,GitLab将在您的存储库上运行git gc
,并且该URL(带有提交ID的URL)将不再可访问。您还可以要求GitLab支持来运行git gc
: