我正在为我的项目创建一个GitHub Pages网站。 GitHub advises生成孤立gh-pages
分支并清除分支中的所有现有文件。为了使我的网站正常工作,我需要master
分支中gh-pages
的几个JSON文件的最新修订版本的副本(如果没有它们,jQuery $.getJSON()
将赢得'工作,如this question)中所述。
似乎有(至少)两种方法可以将文件从master
转换为gh-pages
。
gh-pages
创建master
分支,然后定期重新定位gh-pages
。此方法总结为here,this answer讨论了如何自动执行此过程。我认为这种方法的问题在于,网站的历史现在与其余回购的整个历史相关联,即使master
中的历史对网站来说并不是特别重要。 gh-pages
分支也可能最终包含来自网站所需的master
的大量内容。
git-checkout
定期将所需文件从master
提取到gh-pages
。此方法涉及git-checkout
的非传统用法,描述here,将文件从一个分支复制到另一个分支。根据GitHub的建议,该分支将是一个孤儿,但仍然可以在master
中包含JSON文件,方法是将其引入git-checkout
。我对这种方法犹豫不决的意思是,这意味着每次从gh-pages
更新文件时都会在master
中创建一个提交,这似乎是无关紧要的,因为历史记录会有一堆提交说明&#34 ;从master更新JSON文件。"
我倾向于不担心额外的提交和使用方法#2,但我还应该考虑另一种方法吗?我可能错过了上述方法的任何重要优点/缺点吗?
答案 0 :(得分:0)
一旦拉到您的发布分支(gh-pages
进行项目
存储库或master
用于用户存储库(例如:
username.github.io))您的网站是使用Jekyll生成的
处理
另一个选择是指示github页面不要使用jekyll处理
但只是从发布分支复制文件。这是通过创建来完成的
您存储库根目录下的.nojekyll
文件。
在您的情况下,想法可以是在gh-pages
分支中对python脚本和网站文件进行版本化。
|-- _python_scripts
| |-- script.py
| |-- ...
|-- index.html
|-- script.js
|-- dogs.json
使用第一个处理机制(使用jekyll),这将导致_python_script
文件夹被忽略以进行发布,并且所有其他文件都将被发布。
您有一个清晰的流程,其中包含数据收集,处理和演示的提交历史记录。这个项目历史和我的观点数据历史与演示历史一样重要,可能更多。
我的两分钱。