我正在嘗試使用Middleman創建靜態網站。 git repo master
有源文件。靜態文件在.gitignore
的build
文件夾中生成。對於Github頁面,我有一個分支gh-pages
。我如何設置東西,使gh-pages
的build
文件夾的內容爲master
。Middleman和Github頁面
謝謝。
我正在嘗試使用Middleman創建靜態網站。 git repo master
有源文件。靜態文件在.gitignore
的build
文件夾中生成。對於Github頁面,我有一個分支gh-pages
。我如何設置東西,使gh-pages
的build
文件夾的內容爲master
。Middleman和Github頁面
謝謝。
貌似這個寶石提供了一個完美的解決方案:
我找不到乾淨的做法。這是我一直在使用的腳本:
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
我使用同樣的技術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
另一個好寶石middleman-deploy 。安裝並配置好所有內容後,您可以直接運行
$ middleman deploy
並且您的構建目錄將被推送到GitHub頁面。您可以指定您在配置中推送哪個分支。我還有一篇關於從Jekyll切換到GitHub頁面的博客文章here,並且它談到了一些關於部署的內容。
非常有幫助謝謝。 – 2013-09-26 15:02:06
從那以後你知道更清潔的方法嗎? – denis 2013-02-15 11:48:31