我提交了以下标签:2.5.6,2.5.5,2.5.4,2.5.3,2.5.2,2.5.1和2.5.0。我想回到标签2.5.0,但也保存了从提交2.5.6和2.5.5的更改。所以我想摆脱标签2.5.4,2.5.3,2.5.2,2.5.1。之后的所有提交都应保持在树中不受影响。我可以这样做吗?
git reset commit_id_for_tag_2.5.0;
然后是什么?如何包含标签2.5.6和2.5.5?如何推送新创建的提交?
答案 0 :(得分:1)
标记表示代码在该点的位置的时间点快照。即使你要删除标签,它也不会改变他们指向的后续提交的内容。
如果您想删除内容,可以执行以下操作:
git reset --hard 2.5.0
git cherry-pick 2.5.4..2.5.6
这将启动您从2.5.0开始的新分支,并包括自2.5.4以来所做的任何更改(回想一下,2.5.5'中的变化是自2.5.4以来的变化' 39;)如果你想要包括2.5.6在内的所有内容,你必须确保包括提交。
然后,您可以创建一个新标签并推送它;但鉴于您正在有效地重建新历史并丢弃临时数据,您应该检查您正在做的事情是否有意义。
您还需要将此更改推送到您标记2.5.6版本的新分支,以便您继续处理新历史记录而不是旧历史记录。