有没有办法在git中备份分支并且能够重新导入"它?

时间:2014-07-09 23:02:37

标签: git

我有一个我想删除的分支但可能能够恢复它的完整历史记录 - 有没有办法做到这一点?所以想要这个:

a - b - c - d - e    master
     \
      f - g    tmp

成为:

a - b - c - d - e

并以某种方式存储a - b - f - g我可以重新申请 - 是否可能?

3 个答案:

答案 0 :(得分:5)

也许您可以使用git fast-export将分支保存到文件中。然后,如果您以后需要它,可以使用git fast-import将其取回。

要完成保存单个分支tmp(即提交fg),您可以使用triple dot syntax,如下所示:

git fast-export master...tmp

答案 1 :(得分:1)

只需将存储库克隆到另一个位置,然后从原始存储库中删除该分支。您将能够在锥体中检查它,如果需要,可以从那里将其拉回来。

克隆中的分支基本上只不过是一个与当前存储库不同的分支。您可以随时将分支移回旧存储库。

推送从您的克隆中推送回原始存储库更加容易。

所以,在你的克隆中只需:

git push origin that_branch 

曾经把一个分支推到了github吗?是的,这完全是一回事。

答案 2 :(得分:0)

为了保留tmp的更改,您似乎已经拥有了所需的内容。您应该保留分支,直到将tmp的更改应用到master不再有意义。

这可以通过以下简单的事实来实现:

git checkout master
git merge tmp

这会将您的更改从tmp应用到master

如果你要将你的git历史记录备份到其他服务器或其他地方,你几乎可以做同样的事情;历史图表仍然显示相同,您将以相同的方式恢复更改。