我怎样才能排除Subproject commit ....
我在子模块中没有更改任何内容,仅从远程存储库中提取更改!我认为在创建子模块时,我在主存储库中提交了一些不需要的东西。有任何想法吗?
1)当我创建子模块时git diff在主存储库中还显示
submodule-path:
Subproject commit 5a8162ff9a602deb96956854346988e1ee45672e
我犯了这个
2)然后有人提交到子模块,所以它有以下日志
2ff89a2bfcaa0 last commit
5a8162ff9a602d first commit
3)我更新了子模块
git submodule update --remote --merge
4) now git 状态 shows
modified: submodule-path (new commits)
但我在子模块中没有更改任何内容,只拉取最后的远程更改!我需要最后的改变
git diff shows
diff --git a/submodule-path b/submodule-path
index 5a8162f..2ff89a2 160000
--- a/submodule-path
+++ b/submodule-path
@@ -1 +1 @@
-Subproject commit 5a8162ff9a602deb96956854346988e1ee45672e
+Subproject commit 2ff89a2bfcaa014885a70b0da86e997ecd8d0688
Update:
这不是一个错误。子模块就是这样工作的。
主存储库不跟踪子模块的文件。它只跟踪子模块的 url 和提交 id (子模块在特定点的状态).
引用书中《Starting with Submodules》Pro Git https://git-scm.com/book/en/v2/Git-Tools-Submodules
虽然 sbmoduleDbConnector
是工作目录中的子目录,Git 将其视为子模块,并且当您不在该目录中时不会跟踪其内容。相反,Git 将其视为来自该存储库的特定提交.
由于您更新了模块git submodule update
,您必须暂存更改(实际上是更新的提交 ID)。如果您不想更新子模块的跟踪,请不要使用git submodule update
在开始时,或者直接放弃更改。
子模块很可能是 HEAD 分离的。进入子模块,重置子模块以修复HEAD分离状态。
# Do this in the submodule
git reset --hard origin/master
然后将子模块更新到最新的提交。
# run in the project's root, not the submodule's
git submodule update --remote --merge
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)