我可以撤消上一次git推送吗?

时间:2010-06-10 08:53:24

标签: git

一名团队成员昨晚在匆忙中不小心将半个不需要的拉链推到了远程仓库。是的......哎呀。

此后没有人提起或承诺。

理想情况下,我想“撤消”发生的事情。

我看过filter-branch,正在考虑尝试类似

的东西
git filter-branch --tree-filter 'rm -f *.zip' HEAD

但那是本地的,我无法弄清楚如何在远程仓库上直接进行。

有没有更简单的方法来撤消发生的事情?如果她修改了她的最后一次提交并再次推送将取消推送 - 即实际上从历史记录中删除这些文件?

显然,如果她删除它们,再次提交和推送,那么仍然会将内容留在回购中,这是不好的。

2 个答案:

答案 0 :(得分:54)

谢谢唐,我已经看到了,但不知何故没有意识到它解决了我的问题,因为我只有一个分支。

我做了:

git push -f origin 5910117a8fc2c71334251465b54d6d9daeb28d1c:master

这一切都回到原来的样子。

答案 1 :(得分:5)

我认为

git reset --hard HEAD^
git push -f

应该诀窍:它将您的本地签出重置为先前的提交(假设最后一个是您要删除的那个)并强制将其推送到远程存储库。