Как я могу зафиксировать конкретную директорию в отличной от рабочей ветке в git? - PullRequest
4 голосов
/ 27 августа 2011

У меня есть простой статический веб-сайт, основанный на HTML 5 шаблоне , и все это в репозитории github. Структура проекта примерно такая

build
css    
img
js
publish    # this directory isn't in source control!

...

index.html & other files

По сути, я запускаю скрипт сборки ( из шаблона HTML 5 ), который компилирует все HTML / CSS / JS в каталог publish, которого нет в git хранилище .

Теперь я хочу использовать страницы GitHub и использовать вывод каталога publish в качестве страницы GitHub.

Работа страниц GitHub заключается в том, что вы создаете чистую отдельную ветку с именем gh-pages, которая будет содержать конечное содержимое. Что я хочу сделать, так это уметь по требованию фиксировать текущий каталог publish в ветку gh-pages , но я также хочу сохранить его в основном файле .gitignore, чтобы он выиграл не попадает в исходный репозиторий.

Я хочу сделать это для предварительного просмотра текущего состояния проекта.

короче: Мне нужно зафиксировать один каталог в отдельной ветви, так что его корень будет таким же, как содержимое этого одного каталога. publish/css станет просто css на gh-pages ветви

1 Ответ

2 голосов
/ 27 августа 2011

Поскольку версия .gitignore также является версионной, просто не помещайте каталог publish/ в файл gh-pages ветви *1003*. Затем вы можете просто сделать что-то вроде этого:

ORIG_HEAD="$(git name-rev --name-only HEAD)" git checkout gh-pages && mv publish/* . && git commit -am "automatic update" && git checkout "$ORIG_HEAD"

Это действительно сложно, так как вы хотите делать что-то в корневом каталоге, а не в подкаталоге. Другой вариант - просто сохранить отдельный клон одного и того же репозитория в другом каталоге, который всегда находится в ветви gh-pages. Вы можете сделать так, чтобы ваш сценарий просто записывал туда файлы вместо publish/, а затем просто фиксировал в этом клоне.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...