我的情况是,一个巨大的 2GB 文件被无意中推送到我们在 Azure DevOps 上的远程 git 存储库。 我在审查拉取请求时注意到了这一点。
我的存储库中不能有那么大的文件,需要将其删除。 从历史来看也是如此。 我不希望有人克隆存储库来拉取毫无意义的 2 GB 文件
签到仍在分行。 它尚未合并到母版中。 但它在远程仓库上
只要没有其他人使用此分支,我的用户在此分支上执行 git 重置是否安全? 我被告知 git revert 不会从历史记录中删除该文件,并且我需要 git 重置。
这是我的解决之道吗?
我被告知 git revert 不会从历史记录中删除该文件,并且我需要 git 重置。这是我的解决之道吗?
大多数情况下,是的。用户应该重写他们的分支,以便大文件不再存在于该分支上的任何提交中。有几种不同的方法可以做到这一点,
reset
就是其中之一。据推测,它们是用户仍然需要的分支上的其他更改,因此您可以进行删除文件的提交,然后进行交互式变基并将删除提交压缩到添加文件的提交中。无论您使用什么方法重写分支,您都需要简单地强制推送该分支来更新 PR。
请注意,这里有一些注意事项:
gc
或修剪从存储库提交的确切命令,测试它,并与以下人员共享说明其余的用户。提示:在AzureDevOps中,在项目设置->存储库下,有针对整个系统以及每个单独存储库的选项,您可以在其中设置可以推送的最大文件大小。我建议您将该设置启用为一个明智的选项。我还建议将其设置得有点太低而不是太高,因为您可以在极少数情况下暂时禁用该设置,他们需要有目的地将某些内容推到限制之上。 (当然,这是假设管理员暂时禁用并随后重新启用的情况很少见,不会成为开发人员的瓶颈或烦恼。)