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 还是个新手,想了解它是如何工作的,并且担心这可能会导致不良行为。
可能值得注意的是,我没有预见到这个超级项目依赖于子模块——相反,子模块将依赖于超级项目来获得它的一些样式。
没有回答这个问题的结果(可能是因为问题比我理解的更复杂):
- Update a submodule to the latest commit
- (还有更多但显然我不能 post 他们没有更多的声誉)
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?
是的,您存储库的子模块指向不同的提交。克隆存储库将检查该新提交的子模块。
我正在使用 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 还是个新手,想了解它是如何工作的,并且担心这可能会导致不良行为。
可能值得注意的是,我没有预见到这个超级项目依赖于子模块——相反,子模块将依赖于超级项目来获得它的一些样式。
没有回答这个问题的结果(可能是因为问题比我理解的更复杂):
- Update a submodule to the latest commit
- (还有更多但显然我不能 post 他们没有更多的声誉)
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?
是的,您存储库的子模块指向不同的提交。克隆存储库将检查该新提交的子模块。