Git删除远程历史超过某些提交

时间:2014-03-26 22:21:16

标签: git gitlab

我有一个Git / Gitlab存储库。我们曾经直接承诺掌握,但我们决定转而使用像本世纪其他地方一样的功能分支。

我们需要将远程主控器重置为最后一次发布后的状态。如果有人已经直接向主人提交,我怎样才能将其重置为干净状态,删除上一版本之后的所有历史记录?

我现在花了大约一个小时的谷歌搜索,无法找到这个具体问题的答案。对不起,如果看起来多余,似乎这么简单的任务没有明显的答案!

2 个答案:

答案 0 :(得分:36)

要重置本地分支,

git branch -f master last-release

要重置远程分支,

git push -f origin last-release:master

其中last-release是要将master重置为的引用(提交ID或分支)。

(这些都不会影响你的工作树;如果你愿意,你甚至可以从一个简单的仓库中做到这些。)

答案 1 :(得分:5)

有时,你在Stack Overflow上发帖,你会在一秒钟之后立即弄明白:

$ git reset --hard HEAD~9
$ git push --all --force

现在删除您的本地仓库,重新克隆。