从远程git历史记录中删除一个我本地没有的提交

3
一个团队成员不小心提交了超过1GB的文件到我们的主分支,然后将其推送到远程仓库。我已经从源代码控制中移除了该文件并将其提交到主分支。但是,所有其他协作者正在更新他们的代码(通过git pull),实际上会下载该文件作为历史记录的一部分。
我想要完全从历史记录中删除该提交。如果我可以访问团队成员的计算机,这样做可能会更容易,但目前我无法访问。因此,是否有一种方法可以在不必拉取最新的远程代码的情况下完成此操作?
1个回答

3

我假设你已经拥有了代码库的副本,但是只是没有最新的大提交。你可以使用 git push -f 将你的副本推送到代码库,完全覆盖其他代码库的提交,然后继续进行。


好的,我没有那个提交,所以我想尽可能避免它。问题是她之后提交了更多的代码,那么使用'push -f'会否将其覆盖? - John
2
@john - 当然。现在她的工作就是确保一旦仓库处于适当的状态,就能推送提交。代码将从服务器上被清除,但当然会保留在她的本地仓库中,她必须能够重新进行变基/拉取并推送。 - manojlds
我成功地进行了部分拉取(git pull origin master 后跟 CTRL+C)。它没有下载文件,但使我的历史记录保持最新状态。因此,我能够执行 rebase 操作以获取提交并使用 push -f 推送到主分支。 - John

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接