如果我在我的本地仓库中创建了一些悬空blob或提交(比如通过修改或重新设置提交),当我运行git push时,这些悬空对象是否会被推送到远程仓库?
另外如果我在远程仓库中创建了一些悬空blob(比如通过本地重新定位然后强制更新远程仓库),git将如何处理远程仓库中的悬空对象?他们会永远留在那里吗?
答案 0 :(得分:0)
简短的回答是您不必担心这一点,就像您不必在自己的本地存储库中担心它们一样。
长答案很复杂:git gc
运行并丢弃悬空对象的精确点取决于是否启用了reflog以及是否安装了特定的Git版本。但是,作为一项规则,git push
本身不会推送未使用的对象,因此您必须通过强制推送在服务器上生成未引用的对象。
答案 1 :(得分:0)
同时检查list of commands triggering a gc --auto
:
git receive-pack
(在远程端的git push
上完成)将生成gc --auto
。
因此,如果定期推送,最终将清理远程仓库。