我正在使用Github Pages来托管用户网页和Jekyll Now项目网页。由于Github Pages分配Web地址的方式,用户网页位于username.github.io,而项目分配给username.github.io/blog。
我希望博客项目能够从用户网页访问一些文件,例如styles.css。为了方便相关文件路径,我认为在我的用户网页目录中本地嵌套我的博客项目是个好主意;这样,相对路径在网络和我的本地机器上都是相同的,这意味着路径“../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
我的问题:这个推动是否做了任何会对我的项目/网站的工作方式产生影响的事情?或者它只是涂鸦评论的唯一目的是被人类阅读?
此时我还没有发现任何功能差异,但我还是Github的新手,想了解事情是如何运作的,并担心这会导致不良行为。
值得注意的是,我没有预见到这个超级项目取决于子模块 - 相反,子模块将依赖于超级项目来获得它的一些样式。
没有回答这个问题的结果(也许是因为问题比我能理解的要复杂得多):
答案 0 :(得分:0)
Git子模块充当普通存储库。超级存储库只会看到子模块的签出提交中的更改。
您所做的更改应该在超级存储库中提交,如何知道要使用哪个版本的子模块?
我的问题:这个推动是否做了任何会在功能上产生影响的事情 我的项目/网站的工作方式?或者它只是在涂鸦评论 那唯一的目的是被人类阅读吗?
是的,您的存储库的子模块指向不同的提交。克隆存储库会将子模块检查到新的提交。