Я хочу начать использовать GitHub Pages для веб-сайта моего проекта. Для этого просто требуется ветка (поддерево) с именем gh-pages
] в репо и обслуживает его содержимое. Проблема в том, что часть веб-сайта (руководство, журнал изменений, страница загрузки ...) автоматически создается системой сборки, поэтому я хочу найти лучший способ зафиксировать эти изменяется в ветку gh-pages
, в то время как основное репо остается на master
(или где-то еще).
Для фиксации в ветке gh-pages
я может написать сценарий, который клонирует репо во временный каталог, вносит изменения, фиксирует их, а затем возвращает их в основное репо. Но это звучит как процесс, подверженный ошибкам, поэтому я надеюсь, что есть более простой способ.
Друг посоветовал мне добавить ветвь gh-pages
в качестве подмодуля в главный репозиторий. Я провел небольшой эксперимент, но он не совсем сработал:
$ git init main
Initialized empty Git repository in /tmp/main/.git/
$ cd main
$ touch main.txt
$ git add .
$ git commit -m'Initial commit in main branch.'
[master (root-commit) 1c52a4e] Initial commit in main branch.
0 files changed, 0 insertions(+), 0 deletions(-)
create mode 100644 main.txt
$ git symbolic-ref HEAD refs/heads/gh-pages
$ rm .git/index
$ git clean -fdx
Removing main.txt
$ touch index.html
$ git add .
$ git commit -m'Initial commit in website branch.'
[gh-pages (root-commit) 94b10f2] Initial commit in website branch.
0 files changed, 0 insertions(+), 0 deletions(-)
create mode 100644 index.html
$ git checkout master
Switched to branch 'master'
$ git submodule add -b gh-pages . gh-pages
repo URL: '.' must be absolute or begin with ./|../
$ git submodule add -b gh-pages ./ gh-pages
remote (origin) does not have a url defined in .git/config
Я новичок в подмодулях; читал, конечно, но я не понимаю этого поведения. Зачем ему нужен пульт origin
? В идеале я хочу, чтобы подмодуль всегда ссылался на репо, в котором он находится, поэтому он не должен ссылаться на origin
или любые другие пульты дистанционного управления. Если кто-то клонирует репо и запускает git submodule init; git submodule update
, в идеале он должен извлекать из недавно клонированного репо.
Можно ли добавить репо как подмодуль? Это желательно? Есть ли какие-то подводные камни, о которых мне нужно знать? Есть ли лучший способ достичь того, что я хочу?