【发布时间】:2011-03-10 04:55:01
【问题描述】:
edit 问题归结为“是否也可以指示git rebase 重新设置标签?”但对原始问题的回答也会有所帮助。
问How to prepend the past to a git repository? 我关注了these instructions。 编辑>然后我重新定位以包含仅在快照中的文件,请参阅here。/edit> 因为历史被重写(git filter-branch 或git rebase 或两者兼而有之?)所有标签仍在原始时间线上*,我想以某种方式将它们移至新的。我想我使所有带有标签的提交消息都是唯一的,因此我可以尝试编写一个使用它们的脚本,但更通用的git move-tags <from> <to> 会更好。
那么,有没有办法解决“在新时间线上的 N 次提交之后的提交,以便标记旧时间线上的第 N 次提交”?除了明显的手动重新标记之外的任何其他解决方案也很好。
(请随意将那个可怕的长句子改成简单的英语......)
*) 嘿,git 解决了祖父悖论!
【问题讨论】:
-
标题上写着“rebase”,但是正文却谈到了“filter-branch”,你两个都做了吗(如here暗示的那样)?使用
--tag-name-filter,filter-branch 可以重写标签,但是如果涉及到后续的 rebase,这将无济于事。 -
@Chris 抱歉,我解决了这个问题。是的,我在graft+filter-branch 之后使用了
git rebase。后者之后的标签很好,我应该记得变基创建一个单独的分支,使原始标签保持不变。所以基本问题是“可以指示git rebase也重新设置标签吗?”
标签: git history tags git-rebase git-filter-branch