2016-08-19 1 views
1

Я использую SourceTree в сочетании с репозиторием Github для управления версиями для проекта. Некоторое время я использовал master для совершения всех новых изменений, но время от времени я хочу, чтобы ветвь gh-pages перешла к последней фиксации master, так что я могу обновить текущую страницу со страницы I (обычно при завершении основного обновления).Принесите gh-страницы в актуальное состояние с последней фиксацией мастера

Я попытался переустановить, как было предложено другое сообщение SO, но это еще больше усугубило проблему, поскольку у SourceTree я вручную выбирал, какие изменения мне нужны, а перезагрузка занимает немного времени, особенно учитывая количество фиксаций между последним обновлением от gh-pages. После успешной перезагрузки в одном проекте я мог бы в основном синхронизировать ветвь gh-pages с master всякий раз, когда я захочу, и все промежуточные версии будут фиксироваться автоматически (хотя я не смог воспроизвести одно и то же поведение в другом репозитории). Однако я хочу получить последнюю фиксацию и перезаписать все файлы. Чтобы сделать это, я обычно просто копирую всю папку, находясь в ветке master, в другое место, затем переключаюсь на gh-pages и перезаписываю все файлы вручную. Это неоптимально, хотя и может стать очень проблематичным для крупных проектов.

Итак, я хочу и нужно автоматизировать эту процедуру либо через SourceTree, либо через скрипт.

TL; DR: Мне нужен способ, чтобы обновить gh-pages до последней master совершить полуавтоматический, который перезаписывает все файлы с теми, в master без перебазирования, а затем будет толкать их в репозиторий Github.

ответ

2

Однако, я хочу, чтобы получить последнюю фиксацию и перезаписать все файлы.

Вы должны:

  • слияние gh-pages к master с --ours вариант (так мастера фактически нетронутым).
  • слияния мастера в gh-pages (что означает gh-pages быстро вперед к master и становится идентичным)

Итак:

git checkout master 
git merge --ours gh-pages 
git checkout gh-pages 
git merge master 

Не забывайте, однако, что так как несколько дней назад, вам больше не нужно поддерживать филиал gh-pages.

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

Now you can select a source in your repository settings and GitHub Pages will look for your content there.

+0

Должен ли я выполнить эту последовательность команд, а на 'master' или пока на 'gh-pages'? Идея не поддерживать ветвь 'gh-pages' кажется приятной для изменения на самом деле, поскольку я, вероятно, могу работать над остальной частью страницы и живой версией в одно и то же время, не нарушая ничего. Благодаря! –

+1

@AngelosChalaris Эта последовательность команд включает установку текущей ветви.Таким образом, вы можете запустить его из любой ветки (желательно в чистой рабочей области) – VonC

+0

Правильно, спасибо большое за ваш ответ и за демонстрацию этой новой функции! –

Смежные вопросы