git 子模块中的变基和合并不按预期工作

kqhtkvqz  于 2023-05-05  发布在  Git
关注(0)|答案(1)|浏览(154)

我有一个带有子模块的git仓库,比如说somelib
我将我的工作分支somelib重定为development分支,并进行了一些合并

git rebase development
git pull

在那之后,我希望

git status

从根存储库中删除的somelib子模块将以红色显示(新提交)消息,但它没有。
这怎么可能?
例如,向somelib添加提交和执行rebase+merge有什么区别?

编辑1

git submodule status

显示根存储库指向我在somelib中的工作分支的最新提交。

oxf4rvwz

oxf4rvwz1#

如果子模块被设置为与根仓库中的 recorded 不同的提交,或者有未提交的更改,则在根仓库中执行git status时必须看到以下内容:
modified: somelib (modified content)modified: somelib (new commits)
如果你没有看到这一点,这意味着你认为发生了什么没有。
在执行git rebase development时,您在 local 开发分支上重定somelib的基。你的意思是在 remote 开发分支上重新定位吗?如果是这样,你需要做(假设远程被称为 origin):

git fetch
git rebase origin/development

然后,您不需要执行git pull,因为远程分支上的所有修改现在都应该集成到somelib子模块中当前检出的分支中。
现在,如果在somelib中检出的分支指向与开发分支相同的提交,则您不会修改任何内容,并且在根存储库中执行git status不会显示任何有关somelib的内容。

相关问题