2012-08-04 147 views
8

我正在嘗試使用Middleman創建靜態網站。 git repo master有源文件。靜態文件在.gitignorebuild文件夾中生成。對於Github頁面,我有一個分支gh-pages。我如何設置東西,使gh-pagesbuild文件夾的內容爲masterMiddleman和Github頁面

謝謝。

回答

0

我找不到乾淨的做法。這是我一直在使用的腳本:

bundle exec middleman build 
mv build /tmp/ 

git checkout gh-pages 
git rm -rf . 
cp -r /tmp/build/* . 
git add . 
git commit -m "Update site" 

rm -rf /tmp/build 

git push 
git checkout master 
+0

從那以後你知道更清潔的方法嗎? – denis 2013-02-15 11:48:31

6

我使用同樣的技術Octopressuses開始,它爲中間人的偉大工程。

基本上我使用兩個git倉庫,一個在根文件夾內,一個在build文件夾內。根存儲庫會推送到GitHub遠程的develop分支,並排除build目錄。 build目錄中的存儲庫會推送到同一GitHub遠程的master(或gh-pages)分支。

要自動執行新的靜態頁面的推動,我用下面的Rakefile:

desc "deploy build directory to github pages" 
task :deploy do 
    puts "## Deploying branch to Github Pages " 
    cp_r ".nojekyll", "build/.nojekyll" 
    cd "build" do 
    system "git add ." 
    system "git add -u" 
    puts "\n## Commiting: Site updated at #{Time.now.utc}" 
    message = "Site updated at #{Time.now.utc}" 
    system "git commit -m \"#{message}\"" 
    puts "\n## Pushing generated website" 
    system "git push origin master" 
    puts "\n## Github Pages deploy complete" 
    end 
end 
2

另一個好寶石middleman-deploy 。安裝並配置好所有內容後,您可以直接運行

$ middleman deploy 

並且您的構建目錄將被推送到GitHub頁面。您可以指定您在配置中推送哪個分支。我還有一篇關於從Jekyll切換到GitHub頁面的博客文章here,並且它談到了一些關於部署的內容。

+0

非常有幫助謝謝。 – 2013-09-26 15:02:06