当我想用bitbucket中添加的提交来更新我的代码时,我会检查分支A.从源代码中获取代码。并在A之上重新定义来自原点/ A的更改。在这种情况下,它不会创建具有不同哈希值的新提交。它重复了我们在Bitbucket上的相同哈希。但是我们都知道rebase会删除该特定分支上的所有提交,并在我们当前的提交之上添加相同的内容提交。那么为什么我们没有不同的SHA-1?
答案 0 :(得分:4)
Git仅在现有提交的父级更改时才创建新提交。在这种情况下,您不需要。据推测,您的本地提交origin/A
是从origin/A
复制的提交的祖先,因此您实际上是通过在A
之上重新定位A
来进行快进合并。或者更确切地说,您只是将origin/A
推进为 A origin/A
* -- * -- * -- * -- * -- * -- *
引用的相同提交。从图形上看,你在rebase之前就有了
origin/A, A
* -- * -- * -- * -- * -- * -- *
并且在rebase之后
A
没有提交已经改变;您只是更改了Dim X as Integer
Dim Y as Integer
引用的内容。
答案 1 :(得分:-1)
因为当您进行rebase时 - 您将当前未在远程/原点的更改的基础更改为当前位于远程/原点的更改。基本上这意味着 - 从<得到一切来自>并把它放在我目前的分支中,但保持我目前的工作在历史上的所有内容之上,以保持提交顺序和线性历史。