2015-05-19 102 views
0

我有一個私人的git倉庫(回購'私人'),其中有一堆文件 我經常編輯。其中一些文件發佈在網站上。每次我做一個小小的更改時,更新這些文件是令人乏味的 。我因此想到了 以下列方式使用git子模塊:我創建了第二個(現在是公用的)git 存儲庫('public'),並放入網站上顯示的所有文件。然後 網站提供這些文件在「公​​共」中的鏈接。一旦我在'private'中編輯 文件中的一個,這些文件也處於「公共」狀態,「公開」中的更改將爲 (通過簡單的git命令),因此文件更改將在網站上可見 。我的問題是:git子模塊:哪個存儲庫應該被用作'子模塊'?

1)這是一個很好的方法來處理這個問題?

2)我讀到git submodule update --remote --merge但我仍然不是100% 知道這是否更新子模塊的主要項目或 完全相反的變化。我經常看到解釋 中使用的「上游」工作,但找不到確切的定義。

3)如果子模塊主要用於在一個更新的主要項目 在子模塊的變化感,我會那麼必須創建「私人」 存儲庫作爲子模塊和「公」的一個作爲主要項目? (因爲我 想從內部「公共」跟蹤更改爲「私人」)

[我想我還留着這些問題在一個單一的崗位,因爲他們是非常相關的。]

回答

1

使用子模塊增加了相當有點複雜。

似乎有一個單一的存儲庫,有一個目錄'私人'和一個目錄'公共'將更容易。目錄'public'可以包含'private'文件的符號鏈接。

這將允許您有2種類型的文件,但避免了子模塊的複雜性。

另一個選擇是讓你的編譯系統處理這個問題:只有一個目錄包含所有文件,並有一個Makefile目標,它將公共文件複製到另一個目錄。

+0

嗨,感謝您的幫助。事實上,「子模塊」會造成另一個複雜程度。但是使用我使用的git服務器不可能在同一個項目中同時擁有公共和私有子文件夾。而且,符號鏈接不起作用(如果您有兩個不同的項目),只需提交本地正確但遠程無意義的相對路徑並找不到文件。我最終在第二個(公共)存儲庫中使用了硬鏈接。這對一些測試文件起作用,還沒有嘗試過「大規模」。 [我接受你的回答,因爲它引導我走向正確的方向] –