Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
切换分支时git是否更改子模块引用_Git_Merge_Branch_Git Submodules - Fatal编程技术网

切换分支时git是否更改子模块引用

切换分支时git是否更改子模块引用,git,merge,branch,git-submodules,Git,Merge,Branch,Git Submodules,这就是我面临的情况。 我有一个包含子模块的回购协议。在回购协议中,我创建了一个新分支来进行一些编辑 然后我发现我需要一个更新的子模块,所以我放下子模块继续工作。 之后我进行了一次提交,并将分支合并回主分支 在主分支中,当我使用“git submodule update”时,子模块指向旧版本,但不指向分支中的更新版本:( 我想知道git是否合并了子模块引用?有人能帮我吗?在您的分支中,在拉动子模块“xxx”后,您需要返回父repo(在包含子模块的文件夹中)并执行以下操作: git add xxx

这就是我面临的情况。 我有一个包含子模块的回购协议。在回购协议中,我创建了一个新分支来进行一些编辑

然后我发现我需要一个更新的子模块,所以我放下子模块继续工作。 之后我进行了一次提交,并将分支合并回主分支

在主分支中,当我使用“git submodule update”时,子模块指向旧版本,但不指向分支中的更新版本:(


我想知道git是否合并了子模块引用?有人能帮我吗?

在您的分支中,在拉动子模块“
xxx
”后,您需要返回父repo(在包含子模块的文件夹中)并执行以下操作:

git add xxx
git commit -m "Updated submodule"
这将记录子模块“
xxx
”的新SHA1的更新记忆

这就是当您将分支合并回
master
时需要更新的特殊条目


如果您忘记了分支中的
git add/git commit
步骤,则返回到
master
的合并将保持特殊条目不变,仍然引用旧的SHA1。

我添加了赏金,因为我与OP有相同的问题-但是我在原始分支中添加并提交了子模块。它不会显示在列表中ch I合并到。@SteveFallows“它没有显示”意思是“子模块没有显示”?或者子模块在那里,但是它的更新内容与拉入的SHA1没有显示?后者-它仍然是原始版本的SHA1,而不是合并之前我在另一个分支中提交的更新版本。项目中还有其他子模块,这些都已经完成了,但不确定我在这里犯了什么错误。@SteveFallows可能是这样的此模块在两个分支中都进行了修改?与其他正确更新的子模块相反,这些子模块仅在
dev
分支中进行了修改,然后才合并回
master
?@SteveFallows,或者该特定子模块以某种方式失去了其子模块状态(检查
.gitmodules
文件和
.git/modules
文件夹)。git子模块更新--init可能是正确的。