关于gitlab:Git删除远程历史超过某些提交

Git remove remote history past certain commit

我有一个Git/Gitlab存储库。我们曾经直接提交给master,但是我们决定在这个版本中使用像世界其他地方一样的特性分支。

我们需要将远程主机重置为上次发布后的状态。如果有人已经直接提交给主控形状,那么如何将其重置为干净状态,删除上一个版本之前的所有历史记录?

我已经花了大约一个小时的时间在谷歌上,找不到这个特定问题的答案。对不起,如果它看起来是多余的,它看起来像一个简单的任务,没有明显的答案!


要重置本地分支,

1
git branch -f master last-release

要重置远程分支,

1
git push -f origin last-release:master

其中,last-release是要将master重置为的引用(commit id或branch)。

(这些都不会影响你的工作树;如果你愿意的话,你甚至可以从一个空的回购中进行这些操作。)


有时,您会发布堆栈溢出,然后在一秒钟后立即计算出来:

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

现在删除本地repo,重新克隆。