我有一个我想删除的分支但可能能够恢复它的完整历史记录 - 有没有办法做到这一点?所以想要这个:
a - b - c - d - e master
\
f - g tmp
成为:
a - b - c - d - e
并以某种方式存储a - b - f - g
我可以重新申请 - 是否可能?
答案 0 :(得分:5)
也许您可以使用git fast-export将分支保存到文件中。然后,如果您以后需要它,可以使用git fast-import
将其取回。
要完成保存单个分支tmp
(即提交f
和g
),您可以使用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历史记录备份到其他服务器或其他地方,你几乎可以做同样的事情;历史图表仍然显示相同,您将以相同的方式恢复更改。