Git - 恢复到之前的提交但保存了一些最新的提交

时间:2015-07-03 10:56:20

标签: git github

我提交了以下标签: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?如何推送新创建的提交?

1 个答案:

答案 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版本的新分支,以便您继续处理新历史记录而不是旧历史记录。