Git 删除超过特定提交的远程历史记录

标签 git gitlab

我有一个 Git/Gitlab 存储库。我们曾经直接提交给 master,但我们决定像世界其他地方一样为这个版本切换到使用功能分支。

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

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

最佳答案

要重置本地分支,

git branch -f master last-release

要重置远程分支,

git push -f origin last-release:master

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

(这些都不会影响您的工作树;如果您愿意,您甚至可以从裸仓库中执行这些操作。)

关于Git 删除超过特定提交的远程历史记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22674267/

相关文章:

不支持从 tfs 身份验证克隆 git 存储库的 eclipse 错误

git - 如何在接受任何一个之前将第二个 pull 请求堆叠在现有 pull 请求之上?

java - 自定义 apache ant 任务 git-add (jgit) 不起作用

Gitlab:构建后如何在后续作业中使用工件

java - 如何使用java从Gitlab帐户下载文件

git 提交一次并从那时起忽略

git - 如何解决 Git 存储库中的 merge 冲突?

Gitlab双管道触发问题

GitLab:如何更改 merge 提交消息模板?

git - 使用 Jenkins Git Publisher 推送标签 - 多个 Git 存储库(fork)