以下是我的观察:
当我对分支上的某些文件进行未暂存的更改(之后不运行
git add
或git commit
),然后通过git checkout -b newbranch
创建新分支时,新分支也会“继承”我对原始分支的更改。当我在一个分支上,然后创建一个新分支,并对新分支上的一些文件进行未暂存的更改,然后通过
git checkout originalbranch
切换回原始分支时,原来的分支也会从新分支“继承”我的更改。
我不确定我的观察是否正确。
如果我的观察是正确的,它们对我来说没有意义,因为当我们从另一个分支创建一个分支时,我们通常希望对它们进行单独的工作。如果一个分支继承了另一个分支的更改,那么我们在一个分支上所做的工作将不会与另一个分支分离。那么为什么要“继承”呢?
最佳答案
So why is the "inheritance"?
Git 不会将当前工作目录(即更改)存储在分支中,每个分支也没有自己的暂存区域。两者对于 git 存储库来说都是“全局”的。因此,当您切换到另一个分支时,git 可以选择忽略所有更改并删除它们,或者尝试将它们应用到您要切换到的分支上。由于 git 不想在没有您明确要求的情况下删除您的工作,因此 git 默认保留它们并将它们重新应用到另一个分支上。您当然可以提交或 stash 它们,然后在 checkout 后您将拥有干净的分支。
关于git - 一个分支和从它创建的另一个分支是否会继承彼此的更改?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42847241/