一位开发人员认为,将应用程序的安装文件放入团队在TFS中共享的great中是一个好主意。因此,我正在尝试删除GIT中的一个名为“工作站安装”的文件夹,以便删除所有安装文件,然后修复现在大约1.6GB的包文件。
我试过BFG回购清洁和Git扩展。Git扩展以查看在运行完BFG步骤后文件夹是否仍然在那里。
我对GIT非常陌生,这28个文件在我开始工作并发现这个问题之前大约一年前就被放到了回购程序中。
关于如何做到这一点的任何帮助或步骤。
不知道如何为BFG这样做:默认情况下,HEAD分支是受保护的,虽然它的历史记录将被清除,但是最近的提交( 'tip')是一个受保护的提交,它的文件层次结构根本不会改变。
发布于 2018-03-02 07:30:01
我没有使用http://gitextensions.github.io/ (它显然只是一个用于与Git交互的GUI工具)或https://en.wikipedia.org/wiki/Team_Foundation_Server,但我将假设这里只有一个Git存储库,而且我们没有处理更复杂的情况,即它是需要清理的某个https://en.wikipedia.org/wiki/Team_Foundation_Server#Team_Foundation_Version_Control存储库的镜像。
我对GIT非常陌生,这28个文件在我开始工作并发现这个问题之前大约一年前就被放到了回购程序中。
好消息,这正是BFG创建来解决的问题!
关于如何做到这一点的任何帮助或步骤。
BFG的文档位于:https://rtyley.github.io/bfg-repo-cleaner/ .如果您花时间阅读它,特别是用法部分(它解释了使用BFG之后的过程)以及https://rtyley.github.io/bfg-repo-cleaner/#protected-commits和示例部分,您肯定会发现它很有帮助。
我试过BFG回购清洁和Git扩展。Git扩展以查看在运行完BFG步骤后文件夹是否仍然在那里。
当您尝试调用BFG时,您使用了哪些命令行参数,它给您带来了哪些错误或输出?这种信息对那些试图帮助你的人总是有用的!在你的情况下我会使用的命令是:
$ bfg --delete-folders "Workstation Install"请注意,将带有空格的文件名传递给命令行应用程序总是有点微妙,但我认为,在双引号中将文件夹名(只是文件夹名,而不是回购程序中的路径)括起来是可行的。
不知道如何为BFG这样做:默认情况下,HEAD分支是受保护的,虽然它的历史记录将被清除,但是最近的提交( 'tip')是一个受保护的提交,它的文件层次结构根本不会改变。
您引用了BFG文档中的https://rtyley.github.io/bfg-repo-cleaner/#protected-commits部分,所以我猜您已经读过了,但不幸的是,它还不够清楚?
您可能会发现阅读这个堆栈溢出的答案很有帮助,这是另一个人对BFG中这个安全特性的另一种解释。
我再一次解释一下:你不想要这些文件,对吧?所以,您可以从正常提交开始,从您的主分支中删除它们?此时,您可以检查您的项目在没有这些文件的情况下是否仍然工作(在您的情况下,这听起来很可能,但对于其他进行清理的项目来说可能不是这样--如果他们删除了一个破坏了一些测试的文件,怎么办?)
然后,您准备好了重写所有Git历史记录的更为激进的步骤--您可以运行BFG,只需处理共享更新历史的问题--您不必处理突然删除这些文件从而破坏项目的问题,因为您已经预先检查(并修复)了该问题。
为什么BFG中有这一安全功能?
作为BFG的作者,我不想从那些通过运行BFG意外破坏他们的项目构建的用户那里得到支持问题--更好的做法是用户在开始运行BFG之前破坏和修复他们的项目!因此,BFG不会删除最新提交中的任何文件--您需要手动确保当前版本的文件树清除那些不需要的文件。
完全披露:我是BFG回购清洁的作者。
https://stackoverflow.com/questions/49053806
复制相似问题