在Git上删除其他提交的标记版本之间重新绑定

时间:2012-10-01 21:12:03

标签: git git-rebase git-tag

我有一个我自己工作的项目(没有团队)。我已对某些提交进行了标记,例如v0.0.1v0.0.9 ... v0.9.1等等。现在,我想重新定义它们只留下那些版本标记的提交,但我有两个问题:

  1. 当我做git rebase -i v0.0.1时(第一个版本,从那时起超过2000个提交)我不知道如何在'rebase screen'中显示标签,这就是我定义壁球的地方;
  2. 即使我能够在rebase屏幕内看到标签,在2千次提交中手动定义挤压也会非常耗时;
  3. 这是正确的做法吗?有没有办法更快地实现这一目标?

    非常感谢你。

1 个答案:

答案 0 :(得分:2)

你不能在交互式rebase中获取标签,只是因为标签是不可变的,而rebase正在修改历史,因此是矛盾。

交互式rebase既不适用于数千次提交操作,您必须使用文本编辑器的高级功能来处理它。

你确定要压缩所有未标记的提交吗?即使你现在没有兴趣,保留历史记录也是一个很好的帮助(当你想知道什么提交引入了变化时,请考虑git blame

如果您想查看代码记录,可以询问git log --tagged。您可以在不改变回购历史的情况下简化历史记录,这对您的项目来说非常宝贵。