Использование Tower для управления репозиторием и веткой gh-page в отдельных каталогах

Казалось бы, простая вещь, но решения в сети найти не могу. Во-первых, я знаю, что, вероятно, могу сделать это в терминале, но я бы предпочел сделать это с помощью Tower. . Не все мои коллеги будут использовать Терминал. У меня есть репозиторий (https://github.com/jbryer/psabook/), и я хотел бы использовать с ним страницы Github. Я хочу, чтобы основная ветвь отслеживала источник (в основном файлы уценки). Я создаю веб-сайт из этих файлов и хотел бы опубликовать его в ветке gh-pages. Могу ли я отслеживать это как подкаталог моего репозитория только для этой ветки?

Вот что я пробовал из этого поста: http://blog.blindgaenger.net/generate_github_pages_in_a_submodule.html

Я создаю репозиторий под названием psabook с Github.com. Затем выполните следующие действия из командной строки (на Mac, если это имеет значение):

mkdir foobar
cd foobar
git init
touch README
git add README
git commit -m "initial commit"
git remote add origin [email protected]:jbryer/psabook.git
git push origin master
git symbolic-ref HEAD refs/heads/gh-pages
rm .git/index
git clean -fdx
echo "Hello PSA Book" > index.html
git add .
git commit -a -m "first gh-page"
git push origin gh-pages
git checkout master
git submodule add -b gh-pages [email protected]:jbryer/psabook.git _site

Результат был:

Cloning into '_site'...
remote: Counting objects: 6, done.
remote: Compressing objects: 100% (2/2), done.
remote: Total 6 (delta 0), reused 6 (delta 0)
Receiving objects: 100% (6/6), done.
Checking connectivity... done.

Продолжая...

git status

Возвращено:

On branc master
Changes to be committed:
  (use "git reset HEADE <file>..." to unstage)

      new file: .gitmodules
      new file: _site

Продолжая...

git commit -m "added gh-pages as submodule"
git push

Именно в этой команде я получаю сообщение об ошибке (обратите внимание, что мне также пришлось экранировать скобки):

git submodule init

Подмодуль '_site' ([email protected]:jbryer/psagook.git), зарегистрированный для пути '_site'

Это ошибка, которую я получаю:

error: pathspec 'Submodule' did not match any file(s) known to git.
error: pathspec '([email protected]:jbryer/psabook.git)' did not match any file(s) known to git.
error: pathspec 'registered' did not match any file(s) known to git.
error: pathspec 'for' did not match any file(s) known to git.
error: pathspec 'path' did not match any file(s) known to git.
Did you forget to 'git add'?

person jbryer    schedule 16.04.2014    source источник
comment
Обновлено, чтобы добавить команды, которые я использовал, и ошибку, которую я получаю. Любая помощь будет принята с благодарностью.   -  person jbryer    schedule 16.04.2014
comment
Каков был результат git submodule add -b gh-pages [email protected]:jbryer/psabook.git _site?   -  person VonC    schedule 16.04.2014
comment
@VonC Я обновил вывод выше. Спасибо   -  person jbryer    schedule 16.04.2014
comment
Хорошо, git submodule update --init должно быть достаточно (без дополнительных параметров)   -  person VonC    schedule 16.04.2014


Ответы (1)


Вы можете увидеть оба контента (master и gh-branch) из ветки master.

Для этого вам потребуется объявить ваш gh-branch как подмодуль(! ) в ветке master.
Таким образом, когда вы находитесь в ветке master, папка gh-branch отображается как подпапка.

Как только эта настройка будет выполнена (в командной строке), вы сможете управлять всем из Tower.

См. «Какой самый простой способ развернуть папку в ветке в git?" для настройки подмодуля.

Каждая модификация в gh-branch затем должна быть зафиксирована, и вам нужно будет вернуться в основную папку, чтобы зафиксировать (снова), чтобы записать gitlink (специальный режим ввода 160000).
Таким образом, каждая версия ветки master знает, с какой версией gh-branch она должна работать.


Обновление за август 2016 г.: упрощенная публикация страниц GitHub теперь позволяет хранить ваши файлы страниц в подпапках той же ветки (больше не нужно gh-pages):

Теперь вы можете выбрать источник в настройках репозитория, и GitHub Pages будет искать там ваш контент.

Так что теперь проще: теперь нужно две ветки, можно все делать в одной.

person VonC    schedule 16.04.2014