Tob*_*ler 14 tags git history git-rebase git-filter-branch
编辑问题归结为"也可以git rebase
指示重新标记标签吗?" 但对原始问题的回答也会有所帮助.
问如何将过去添加到git存储库?我遵循了这些指示.< edit >然后我重新加入以包含仅在快照中的文件,请参见此处.< / edit >由于历史记录被重写(由git filter-branch
或git rebase
或两者?)所有标签仍然在原始时间线上*我不知何故喜欢将它们移动到新的.我想我用标签做了所有提交消息,所以我可以尝试编写一个使用它们的脚本,但更通用的git move-tags <from> <to>
会更好.
那么,有没有办法解决"在新时间轴之后N提交的提交,以便标记旧时间轴上的第N次提交"?除了明显的手动重新定位之外的任何其他解决方案也会很棒.
(请随意将那个可怕的长句纠正为简单的英语......)
*)嘿,git解决了祖父悖论!
小智 9
我写了一个脚本来做到这一点.
$ git-rebase-tags master
Rebasing 107 tags onto 'master'
Can't rebase tag 'staging-deploy-01' because there are no identical commits on 'master'
Pointed tag 'v0.0.11' at commit 81e16f2ca1bc7802547bf19c1dba1a68212eafff
Pointed tag 'v0.0.12' at commit 17051cc28084dd56ae56e96767bceee46217c02d
Pointed tag 'v0.0.13' at commit 5d795076ba4b33f81d327dcf9bff727cef7771a2
[...]
Run Code Online (Sandbox Code Playgroud)
但更好的是,使用--tag-name-filter
git-filter-branch(1)中内置的选项.