Github 子模块更新时超级项目显示更改?

Github superproject shows changes when submodule updates?

我正在使用 Github Pages to host a user webpage and a Jekyll Now 项目网页。由于 Github 页面分配网址的方式,用户网页位于 username.github.io,而项目分配给 username.github.io/blog.

我希望博客项目能够从用户网页访问一些文件,例如styles.css。为了方便相对文件路径,我认为将我的博客项目本地嵌套在我的用户网页目录中是个好主意;这样一来,Web 和我的本地计算机上的相对路径将是相同的,这意味着路径“../styles.css”将让我的博客项目在所有上下文中访问用户网页的 CSS .

为了嵌套项目,我只是在本地用户网页存储库中创建了博客项目的本地克隆。方便的是,Github 用户网页存储库立即将此 /blog 目录识别为子模块。我一直在做一些研究和一些测试,以确保这种安排会产生我想要的行为,到目前为止,除了一个令人困惑的脚注外,一切都很完美。

我在本地子模块中进行了更改并将其推送。然后,在不做任何其他更改的情况下,我使用以下命令暂存、提交和推送我的超级项目存储库:

git add .
git commit -m "just a test"
git push origin master

我预计推送会失败,因为我实际上并没有在超级项目中进行任何更改——唯一的更改是在子模块中。然而,令我惊讶的是,推送奏效了。

当我分析 Github 上的提交时,它显示了对博客文件夹的单个更改,描述如下:

Submodule blog updated from 632f0e to e6a35d

我的问题:这个推送是否做了任何会影响我的 projects/website 工作方式的功能?或者它只是草草地写了一条评论,唯一目的是供人类阅读?

目前我还没有发现任何功能差异,但我对 Github 还是个新手,想了解它是如何工作的,并且担心这可能会导致不良行为。

可能值得注意的是,我没有预见到这个超级项目依赖于子模块——相反,子模块将依赖于超级项目来获得它的一些样式。


没有回答这个问题的结果(可能是因为问题比我理解的更复杂):

Git 子模块充当普通存储库。超级存储库只会看到子模块签出提交中的更改。

你所做的更改应该提交到超级存储库中,否则它怎么知道要使用哪个版本的子模块?

My question: Did this push do anything that would functionally affect the way my projects/website works? Or is it just scribbling a comment that's only purpose is to be read by humans?

是的,您存储库的子模块指向不同的提交。克隆存储库将检查该新提交的子模块。