如果我使用git commit --amend
,则先前的提交(例如,提交A)将被覆盖,因为git reflog
记住了它,因此无法完全实现。
我的问题是:
git push
,提交A是否会推送到远程?git reflog expire --expire-unreachable=now
之后使reflog忘记提交A)如何处理答案 0 :(得分:1)
已从评论中移出
没有“无法完全到达”的状态。它是可到达的,还是不可到达的(从推送的refspec中)。可到达的提交被推送。不可达的不要。 (如果使用普通git push
,则可能使用默认配置选项push.default=upstream
,该选项会推送当前分支;例如,如果您位于master
上,git push
会推送{ {1}},以及从master
可以到达的所有对象。)一个相关的术语是“悬空对象”-从 any 其他对象无法到达的对象。
master
删除无法访问的对象。在那之后,这些引用不是不可到达的,它们不存在。
使它们可访问(例如,通过git reflog expire
或branch
命令)。或者,在tag
中使用refspec
参数来显式选择对象。 (根据定义,每个对象都可以从自身到达。)