【问题标题】:Remove a commit from remote git history which I don't have locally从远程 git 历史记录中删除我在本地没有的提交
【发布时间】:2012-04-04 17:09:15
【问题描述】:

一个团队成员不小心将超过 1GB 的文件提交到我们的 master 分支并将其推送到 origin。从那以后,我将其从源代码控制中删除并致力于掌握。但是,所有其他正在更新其代码(通过git pull)的协作者实际上都在下载这些文件作为历史记录的一部分。

我想完全从历史中删除该提交。我想如果我可以访问团队成员的计算机,这会更容易做到,但我现在没有。那么有没有办法做到这一点而不必从远程拉下最新的?

【问题讨论】:

    标签: git github git-rebase git-revert


    【解决方案1】:

    我假设你有一个 repo 的副本,但只是你没有最新的大提交。您可以使用 git push -f 将您的副本推送到 repo 以完全覆盖其他 repo 提交并从那里继续。

    【讨论】:

    • 酷。是的,我没有那个承诺,所以我想尽可能地避免它。问题是她后来提交了更多代码,所以做一个push -f 会把它吹走吗?
    • @john - 当然。现在,她的工作是确保一旦 repo 处于适当的状态,它就会被推送。代码将从服务器上被删除,但当然会保留在她的本地仓库中,她必须能够重新设置/拉取和推送。
    • 我以某种方式设法进行了部分拉取(git pull origin master 后跟 CTRL+C)。它没有下载文件,但更新了我的历史记录。所以我能够做一个rebase 来得到提交和push -f 到master。
    猜你喜欢
    • 2014-11-20
    • 2014-05-05
    • 2012-04-06
    • 2015-07-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-09
    • 2013-08-03
    相关资源
    最近更新 更多