2013-07-26 104 views
0

我有一個化身網站這個文件夾結構:傑基爾部署與GIT

jekyll_site 
    _source 
    file1 in source 
    file2 in source 
    etc... 
    _deploy 
    file1 in deploy 
    file2 in deploy 
    etc... 

我在jekyll_site初始化的混帳回購協議,我有兩個分支主人和來源。 我希望源分支只跟蹤_source文件夾,並且主要只跟蹤_deploy文件夾。另外,我想將它們推送到遠程倉庫,但要掌握分支出現(在遠程回購):

master branch 
    file1 in deploy 
    file2 in deploy 

不是:

master branch 
    _deploy 
    file1 in deploy 
    file2 in deploy 

所以我想轉變整個事情之一升級。 假設我可以在部署中創建另一個倉庫,以使其成爲root用戶並單獨推送它們。但也許有一個回購也是可能的。 對不起,如果我忽略了一些非常明顯的東西,我非常疲憊(而且非常厭煩)。

回答

0

這裏有幾個不同的事情發生。

  • Git沒有被設計爲在一個分支上管理一個目錄,而在另一個分支中維護另一個目錄。要按照您描述的方式分別管理兩個目錄,需要兩個Git回購站。一個儲存庫jekyll_site/_source,第二個儲存庫jekyll_site/_deploy

  • 使用兩個Git倉庫負責將您的「_deploy」文件上移一個級別。由於存儲庫將在jekyll_site/_deploy創建,文件將部署到根目錄。

  • 如果您決定仍然希望使用單個存儲庫,請不要與Git戰鬥。也就是說,不要嘗試使用不同的分支來分別管理_source_deploy目錄。只需在jekyll_site級別創建一個回購。採用這種方法,除了Git之外,您還需要爲您的部署使用一些東西。編寫一個簡單的腳本,將文件從_deploy移動到最終需要的位置。

  • 不要試圖把一個Git倉庫放在另一個倉庫中。壞事會發生。 (有一種方法做「Submodules」但是這不是你想更動,直到你使用Git更多的經驗的東西。)

+0

感謝由 我的主要目標停止是有我的下版本源控制,因爲部署只是從根(也就是網站)提供的生成文件夾。所以每個修改都是在源代碼中完成的,但是由於我正在向Github推送,部署也必須受到修訂控制。我看到有人用這種方法處理這個問題,比如[將第二個分支過濾到子目錄](http://davidensinger.com/2013/04/deploying-jekyll-to-github-pages/),[複製生成的文件反覆](http://charliepark.org/jekyll-with-plugins/),或只是回購裏面的回購風格 – marchello