2017-08-17 72 views
1

我使用Github Pages舉辦使用者網頁和Jekyll Now項目網頁。由於Github Pages分配網址的方式,用戶網頁位於username.github.io,而項目分配給username.github.io/blog。當子模塊更新時,Github超級項目顯示更改?

我想要的博客項目,以便能夠從用戶的網頁訪問某些文件,如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

Git submodules act作爲正常的儲存庫。超級存儲庫只會看到子模塊的簽出提交中的更改。

您所做的更改預計會在超級存儲庫中提交,它還會如何知道要使用哪個版本的子模塊?

我的問題:這個推送是否做了任何會影響 我的項目/網站的工作方式?或者它只是塗寫評論 這只是目的是被人類讀取?

是的,您的存儲庫的子模塊指向不同的提交。克隆存儲庫將檢查該新模塊的子模塊。

+0

因此,如果我理解正確,超級存儲庫會爲其子模塊存儲一個提交ID。當某人克隆超級存儲庫時,此ID將用作指針,以便克隆子模塊的相應版本。這意味着我的推送影響了標準的Github源代碼控制系統,但不影響Github Pages(虛擬主機)方面。 –

+0

這是正確的,你有自己的Github頁面的本地副本。要遠程影響它,推送子模塊內的更改。 – destoryer

相關問題