git - 重置为先前未推送的提交并推送它们
问题描述
说我有:
- HEAD@{1}:A(未推动)
- HEAD@{2} : B(未推动)
- HEAD@{3}:C(未推动)
- HEAD@{4} : D(未推动)
如果我要重置HEAD@{4}
并推送它,我可以稍后重置为 HEAD@{3}、推送它、重置为 HEAD@{2} 等等吗?重置和推送后我会丢失以下提交HEAD@{4}
吗?
解决方案
如果允许您推送已重置为先前提交的分支,这取决于您的中央存储库的配置(您要推送到的位置)。在许多存储库中,这在特定分支(例如 master)上是不允许的。
如果你能做到,提交仍然存在。当您知道 git 哈希或尝试使用git reflog
. 当它们不再可以通过历史上的分支或标记访问时,它们最终将被垃圾收集器删除,可能在四个星期后(取决于配置)。
除非您进行垃圾收集,否则您还将提交保存在存储库的本地副本中。
如果您想确保以后可以恢复这些提交,您可以在将当前分支重置为较旧的提交之前分支或标记最新的提交。
推荐阅读
- html - Create a table of subject using html and ruby
- flutter - How to fetch user's current location using HERE maps in flutter?
- docker - ldd: exited with unknown exit code when use qemu in docker
- c# - NLog 不登录 ASP.NET Core 控制器
- javascript - 看不到从 Chrome 扩展到 Laravel Logger 的结果
- android - 支持多种语言:以编程方式更改语言有时有效,有时无效
- python - 我如何结合 Scrapy 和 Selenium 向下滚动此网页并刮掉所有文本?
- javascript - 如果 min 属性超过今年,为什么它会停止影响 html5 日期选择器?
- javascript - Yup.string.when 总是会给出未定义的结果。如何将字符串值传递给 .when 方法
- node.js - 在 npm 安装中出现错误