我知道它们存在于git reflog中,但是如果我将提交推到远程存储库,修改,然后git push --force(警告:pushing --force到远程存储库通常应该避免),我重写的提交是否存在某个地方?

最佳答案

我覆盖的提交是否存在?
仅限于:
本地回购协议的reflog
远程reflogupstream repo(该提交以前发布过)。
上游回购通常是bare one,正如kostixcomments,所以core.logAllRefUpdates needs to be true,如果你想在上述的裸上游回购中看到回流。
远程回购的任何其他本地克隆,在其他人第二次git推送(--force)之前完成。
注意ORIG_HEAD(amemento from a time where reflog didn't existed yet)不是由agit commit创建/更新的(如agit commit --amend或agit commit --amend -m "new comment")。
因此,如果在回购协议上未激活reflog,则不能使用orig_head来引用修改后的提交。

10-04 12:45