git rebase 是否会覆盖更新所有提交哈希值?

问题描述 投票:0回答:1

我知道

git rebase
将更新受影响提交的 SHA。但是,如果我错了,请纠正我,父提交也会更新,然后他们的父提交也会更新,依此类推。那么,整个存储库的提交历史记录是否会因运行单个 rebase 命令而更新?或者它只影响到被重新定位的分支的基础?

git git-rebase
1个回答
0
投票

假设这是您的存储库

... -- * -- X -- A -- B -- C (master)
        \
         -- D -- E -- F (foo)

如果将

foo
变基为
master
,则会创建 三个 新提交:来自
D'
D
、来自
E'
E
以及来自
F'
F
D
E
F
均未更新;它们保持“原样”。主要区别是引用foo不再指向
F
;它指向
F'
... -- * -- X -- A -- B -- C (mastre) -- D' -- E' -- F' (foo)
        \
         -- D -- E -- F

没有对 
F

的引用,因此在某些时候它将有资格进行垃圾收集。 当这种情况发生时,将不再有对

E
的引用,并且
it
将符合资格。当 that 发生时,D 就没有剩余的引用了,它也将被垃圾收集。然而,
*
有两个参考文献,
D
X
,所以它仍然存在。
    

© www.soinside.com 2019 - 2024. All rights reserved.