删除两个 git 标签之间的代码库

问题描述

我有一个情况,其中

  1. 我有一个标签 v.0
  2. 编写了一些新代码并推送到 master。
  3. 创建了一个标签 v.1。
  4. 编写了一些新代码并推送到 master。
  5. 创建了一个标签 v.2

现在如果我想删除在 v.0 和 v.1 之间编写的代码,我也想删除标签 v.1 我怎样才能做到这一点?

解决方法

这要求您“重写历史”,如果您的存储库是公开的,这通常被认为是一个坏主意。但本质上,您需要在本地进行所有这些更改,然后强制将本地更改推送到原点。我相信这看起来像:

git rebase -i v.0
# delete the desired range of commits by deleting lines in the `git-rebase-todo` file that is presented
git tag --delete v.1
git push --force-with-lease