当我结帐母版时,git子模块具有“新提交”

大卫·多里亚

我有一个名为辅助程序的子模块。当我用--recursive克隆我的主项目时,Helpers子模块处于分离的头部状态(所有教程都说应该如此)。如果我现在在主项目目录中处于“ git status”状态,则一切都干净了。如果我是CD助手;git checkout master”,除了我现在可以提交的命名分支外,我希望什么都不会改变。但是,如果我不执行任何其他操作,请输入cd ..;。git status”,我看到了

 modified:   Helpers (new commits)

为什么认为有新提交?子模块仍应与更新时(在本例中为克隆)在同一时间,不是吗?

亚历克斯·贝克

如果HEAD您的子模块的与父存储库的索引中指定的提交不匹配,则git将为您提供“新提交”消息。您可以通过运行git ls-tree以下命令检查在索引中指定了哪个提交

$ git ls-tree master:<path_to_folder_containing_my_submodule>
160000 commit ba9d11670daf5109a52e5a2b01bca8a344897338  my_submodule

当您进行递归git克隆时,git将获取最新的git,然后指向HEAD指定的提交。如果指定的提交与远程主服务器中的最新提交不匹配,则克隆时master将不相等HEAD

执行递归克隆后检查的另一种方法是cd进入子模块,然后使用git log

$ git log --decorate --all
commit 6a75034cc78fc637e2437bba9f5834835f56bd8f (origin/master, origin/HEAD, master)
...
commit ba9d11670daf5109a52e5a2b01bca8a344897338 (HEAD)

如果HEAD并且master指向相同的提交,则可以检出master,并且在父存储库中将看不到“新提交”消息。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Git:自动提交具有相同消息的子模块

忽略git子模块的新提交

当我在Tig中查看某些git提交时,为什么有些git提交具有“ refs”?

在git中具有子模块的浅表克隆,如何使用指向提交而不是最新提交?

除了子模块中的新提交外,我如何git add -u?

Git子模块显示新的提交,子模块状态表明什么都没提交

Git子模块代码提交

git子模块添加错误:没有签出提交

我的Git子模块未加载所有文件

当我使用onchange时如何提交具有选定值的表单

git子模块签出相同的提交

Git子模块和孤立的提交

如果子模块可能具有公共父目录,如何从子模块中删除.git文件?

使用带有grunt-git和grunt-githooks的子模块的后提交钩子来提交Git“ Supermodule”

使用子模块时,模块可以与包本身具有相同的名称吗?

我需要git子模块吗?

如何重新设置git子模块,以保留对包含子模块的git存储库中对子模块提交的引用?

当我想将已登台/未登台的内容提交到新分支时,是否需要取消登台所有内容?

创建差异时与git子模块碰撞

从私有git服务器克隆时,git子模块无法递归

如何git标记所有子模块?

克隆所有子模块的git repo

没有 .gitmodules 文件的 git 子模块?

为 git 历史记录中的所有提交更改 git 子模块的远程存储库

Git子模块的提交与主仓库中的标签匹配

如何git checkout commit并使子模块更新到该提交?

git如何知道在哪个提交中检出子模块?

如何在git子模块中“提交”更改?

将Git子模块更新为最新的原始提交