我有一个分支想要删除,但是可能需要能够完整地恢复它的历史记录 - 有没有一种方法可以做到这一点?所以想要这个:
a - b - c - d - e master
\
f - g tmp
成为:
a - b - c - d - e
我希望能够以某种方式存储a - b - f - g
,以便我可以重新应用它-这是可能的吗?
我有一个分支想要删除,但是可能需要能够完整地恢复它的历史记录 - 有没有一种方法可以做到这一点?所以想要这个:
a - b - c - d - e master
\
f - g tmp
成为:
a - b - c - d - e
我希望能够以某种方式存储a - b - f - g
,以便我可以重新应用它-这是可能的吗?
git fast-import
来恢复它。tmp
(即提交f
和g
),您可以使用三个点的语法,如下所示:git fast-export master...tmp
只需将存储库克隆到另一个位置,然后从原始存储库中删除该分支。您将能够在克隆中检查它,并在需要时从那里将其拉回。
克隆中的分支基本上只是与您当前存储库不同的某个位置上存在的分支。您总是可以稍后将该分支移回旧存储库。
甚至更容易地从克隆中将该分支推送回原始存储库。
因此,在您的克隆中只需执行以下操作:
git push origin that_branch
你是否曾将分支推送到github?没错,那正是同样的事情。
看起来你已经得到了保留 tmp
变更所需的一切。你应该保留该分支,直到将 tmp
中的变更应用到 master
不再有意义为止。
这可以通过以下简单的方式完成:
git checkout master
git merge tmp
这将把你在tmp
上的更改应用到master
上。
如果你要将git历史记录备份到其他服务器或其他地方,你基本上会做同样的事情;历史图表仍然会显示相同,你也会以同样的方式恢复更改。