Вопрос

Я разрабатываю плагин jQuery, который проводит на GitHub. У него есть демонстрация, в которой я вручную копирую и подталкиваю к филиалу gh-pages, то, что я хотел master он автоматически наставил gh-pages, или, по крайней мере, настройка, где они отражаются.

Я уже видел это вопрос но не уверен, действительно ли это отвечает на мой вопрос в отношении этих требований:

  1. я использую Башня, Я не против использовать терминал (Mac) для внесения изменений в конфигурацию, если решение работает с этим графическим интерфейсом.
  2. Я хочу только это «зеркальное зеркало» на определенных репо, а не на всех их на моей машине.

Ваше здоровье

Это было полезно?

Решение

git checkout gh-pages
git merge master
git push origin gh-pages

Другие советы

Добавить следующие 2 строки в [remote "origin"] раздел .git/config:

push = +refs/heads/master:refs/heads/gh-pages
push = +refs/heads/master:refs/heads/master

Каждый раз, когда вы push Он также автоматически подтолкнет мастер к GH-страницам. Я использую это для JQuery LifeStream Project.

Не делайте то, что Денбуззе предлагает выше!! + (Плюс знак) в толчке заставляет его тихо принимать необработанные обновления. Я узнал, как это может безвозвратно привести к потере работы, что привело к висящим коммитам. Простое удаление знаков плюса делает этот подход более безопасным.

push = refs/heads/master:refs/heads/gh-pages
push = refs/heads/master:refs/heads/master

Теперь вместо того, чтобы привести к обновлению силы, это вызовет предупреждение и привлечение предложений

To https://github.com/someuser/repo.git
 ! [rejected]        master -> gh-pages (fetch first)
 ! [rejected]        master -> master (fetch first)
error: failed to push some refs to 'https://github.com/someuser/repo.git'
hint: Updates were rejected because the remote contains work that you do
hint: not have locally. This is usually caused by another repository pushing
hint: to the same ref. You may want to first integrate the remote changes
hint: (e.g., 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.

Я добавляю дальнейшее объяснение @denbuzze а также @Mcsdwvl ответы

Если вы хотите подтолкнуть оба master а также gh-pages автоматически каждый раз, когда вы запускаете git push origin, вероятно, вы хотите добавить RefSpec в конфигурацию GIT вашего репо.

Итак, согласно GIT-SCM Книга, вы можете добавить два RefSpecs, добавив два push Значения в файл конфигурации репо .git/config:

[remote "origin"]
url = https://github.com/<github_user>/<repo_name>
      fetch = +refs/heads/*:refs/remotes/origin/*
      push = refs/heads/master:refs/heads/master
      push = refs/heads/master:refs/heads/gh-pages

Это вызовет git push origin к:

  1. Толкнуть местный master ветвь в пульт master ответвляться
  2. Толкнуть местный master ветвь в пульт gh-pages ответвляться

по умолчанию.

Примечание: используя + Перед тем, как спецификация заставляет заставлять толкать к репо. Используйте его с осторожностью:

Формат RefSpec является необязательным +, с последующим <src>:<dst>, куда <src> это шаблон для ссылок на удаленной стороне и <dst> где эти ссылки будут написаны на местном уровне. А + Позволяет GIT обновить ссылку, даже если она не является быстрым.

Я лично люблю обернуть это в псевдоним:

alias gpogh="git checkout gh-pages && git merge master && git push origin gh-pages && git checkout -"

Это отражает вашего хозяина gh-pages, толкает на GitHub, затем переключает обратно предыдущую ветку, над которой вы работали.

Или вы можете просто использовать CMD ниже, это подтолкнет вашу локальную главную ветвь в главную ветвь GH-Pages.git push -f origin master:gh-pages

совершить а также толкать освоить..

тогда :

git checkout gh-pages  // -> go to gh-pages branch
git rebase master // bring gh-pages up to date with master
git push origin gh-pages // commit the changes
git checkout master // return to the master branch

ОБНОВИТЬ: Github теперь позволяет публиковать страницы из любого филиала и каталога, которые вы хотите.


Мне было намного проще использовать gh-pages ветвь как Мастер. В «Мастере» нет ничего волшебного; Это просто еще одно название филиала. Там является Что-то волшебное в GH-страницах, потому что именно здесь GitHub ищет index.html, чтобы служить вашей странице.

Читать больше в мой другой ответ на эту тему.

С использованием gh-pages Поскольку мастер также проще, чем подтережи, которые легче, чем зеркалирование. Вы могли бы использовать git subtree как описано здесь или же здесь: Если у вас есть каталог, который содержит вашу демонстрацию, вы можете подтолкнуть этот каталог в gh-branch с одной командой. Допустим, вы называете каталог gh-pages чтобы прояснить ситуацию. Затем после того, как вы совершили и подтолкнули свои изменения в master, Запустите это, чтобы обновить GH-Pages:

git subtree push --prefix gh-pages origin gh-pages

Проблема в том, если ваши файлы в gh-pages Обратитесь к файлам в других каталогах вне его. Символики не работают, поэтому вам придется копия Файлы в каталоге, который служит GH-страницами.

если ты использовать gh-pages как мастер, эта проблема не произойдет.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top