首页 > 解决方案 > 重置为先前未推送的提交并推送它们

问题描述

说我有:

如果我要重置HEAD@{4}并推送它,我可以稍后重置为 HEAD@{3}、推送它、重置为 HEAD@{2} 等等吗?重置和推送后我会丢失以下提交HEAD@{4}吗?

标签: gitgitlabgit-pushgit-reset

解决方案


如果允许您推送已重置为先前提交的分支,这取决于您的中央存储库的配置(您要推送到的位置)。在许多存储库中,这在特定分支(例如 master)上是不允许的。

如果你能做到,提交仍然存在。当您知道 git 哈希或尝试使用git reflog. 当它们不再可以通过历史上的分支或标记访问时,它们最终将被垃圾收集器删除,可能在四个星期后(取决于配置)。

除非您进行垃圾收集,否则您还将提交保存在存储库的本地副本中。

如果您想确保以后可以恢复这些提交,您可以在将当前分支重置为较旧的提交之前分支或标记最新的提交。


推荐阅读