在单个github页面网站上使用n github存储库?

时间:2015-01-06 15:22:26

标签: github github-pages

我正在编写一个代表2个github存储库的网站:WEBSITE.git(2MB或2%)& AUDIO.git(98MB = 98%)。我将其部署如下:

git clone https://github.com/<user>/WEBSITE.git
mkdir -p ./audio ./audio/cmn;
git clone https://github.com/<user>/AUDIO.git ./audio/

在结构之后,结构如下:

|- /html/<files>
|- /css/<files>
|- /js/<files>
|- /audio/<AUDIO.git's files>

Repository AUDIO是动态开放式项目中项目权重的98%(100MB),WEBSITE是我2%的代码。

当然,当我向WEBSITE.git添加git checkout --orphan gh-pages时,gh-pages http(s)://<user>.github.io/WEBSITE/网站有效,但没有音频。一切都如我们所料。

我需要音频工作,简单的方法是将这些音频完全整合到WEBSITE.git。但是我非常不愿意将这些重文件添加到它的git历史中,因为它会将我的html / css / js存储库的权重大幅增加50倍。这很重要因为我正在组队与互联网连接非常低的开发人员。

我该如何处理?是否存在将外部github存储库集成到gh-pages文件结构的秘密攻击?(将AUDIO.git插入http(s)://.github.io/MYSITE/audio/)

2 个答案:

答案 0 :(得分:1)

根据这个用例......

<强> 0。获取主存储库 WEBSITE.git:

git clone "https://github.com/<user>/WEBSITE.git"
cd ./WEBSITE/               # and `git branch` gives "master"

添加子模块

<强> 1。将子模块 AUDIO.git添加到您的WEBSITE的./audio/文件夹中。

git submodule add -- "https://github.com/<user>/AUDIO.git" "./audio/"

2.提交周期:

git commit -am "dev,git: add submodule https://github.com/<user>/AUDIO.git" 
git push

Github页面

编辑:截至2017年,现在有一种更简单的方法可以从github的设置中Configuring a publishing source for GitHub Pages。这个答案仍然启发了n git子模块的使用。

3.更新分支gh-pages

git checkout gh-pages       # go to local branch gh-pages
git rebase master           # synchronize local gh-pages as a copy of local master
git push origin gh-pages    # push changes to origin, for branch gh-pages
git checkout master         # return to local branch master

克隆和更新存储库

使用子模块为git +1.6.5克隆存储库

git clone --recursive git://github.com/foo/bar.git
cd bar

更新存储库以安装子模块:

git submodule update --init --recursive

答案 1 :(得分:1)

使用Github页面,您只需执行以下操作:

主要网站

托管于github.com/userName/username.github.io。最终使用custom domain name

username.github.io或cutom domaine名称达成。

音频文件

托管于github.com/userName/audio

username.github.io/audio

联系

本地开发

主站点可以.gitignore音频文件夹,它本身托管音频存储库。 这将复制在线文件夹层次结构。