когда dev repo не отображает 1-к-1 с рабочим деревом работы, тогда это хороший вариант использования для подмодулей git? - PullRequest
1 голос
/ 06 декабря 2011

Я довольно новичок в git и только что понял основы обновления живого веб-сайта из моего локального репозитория с помощью метода, описанного этими парнями:

http://danielmiessler.com/study/git/#website
http://toroid.org/ams/git-website-howto

('Сводка в одну строку ^^^: вставить в удаленный репозиторий, у которого есть отдельное рабочее дерево, и ловушку после получения, которая запускает "git checkout -f".')

Все хорошо, но у меня есть 2 проблемы, которые, я надеюсь, я смогу решить с помощью немного более хитрой работы с ногами, чем я знаю до сих пор:

  • Мое репо на самом делепредставляет собой гораздо больше, чем просто то, что мне нужно подтолкнуть на живой сайт.Но я хочу сохранить свое локальное dev-репо как есть (с посторонними папками), потому что я также использую это dev-репо для резервного копирования all моей работы, связанной с сайтом (включая основные файлы photoshop, которые я использую для созданияjpgs сайта, заметки проекта и т. д.), локально, к моей резервной копии dev HD).У меня есть смутное представление о том, что я должен смотреть на git, чтобы иметь возможность игнорировать определенные файлы / папки, но (еще не просматривая) я не хочу просто игнорировать что-либо - я хочу сделать резервную копию моей всей репо, используя git push при переносе в мое резервное копирование dev repo (локальное резервное копирование HD), но при перетаскивании в репозиторий с живого сайта только + 1018 * некоторые папок.Я не знаю, как это делать.

  • Папки моего репозитория фактически представляют разные области живого сайта, которые не находятся в одной структуре каталогов.Я имею в виду, что мне действительно нужно (хотите, если возможно), чтобы обработчик (и) после получения извлекал некоторые папки / файлы дерева живого сервера в DocumentRoot веб-серверапри проверке некоторых других папок / файлов дерева живого сервера вне DocumentRoot веб-сервера.Я бы только сделал извлечение ловушки после получения в родительскую папку, чьим дочерним элементом является DocumentRoot сервера, но структура каталогов моего dev-репо не отображает один-к-одному в структуру каталогов живого сервера.Мне нужно немного детализированного управления (всего для нескольких папок), чтобы я мог эффективно указать хуку (-ам) пост-получения, где должна отображаться каждая папка дерева, в структуре каталога / файла живого сайта.

Спасибо за любые советы!

1 Ответ

2 голосов
/ 07 декабря 2011

Я думаю, что вы используете не тот инструмент! Вы сохраняете веб-сайт и вспомогательные файлы в репозитории git, что нормально, но затем вы хотите использовать git для развертывания вашего проекта.

Я бы предложил что-то другое: используйте специальный инструмент для развертывания, например fabric http://docs.fabfile.org/en/1.3.3/index.html Существуют другие инструменты, которые делают то же самое, но я случайно знаю, что fabric.

Если вы хотите, вы можете затем отправить свой репозиторий на сервер и запустить его после перехвата, который вызывает только fab deploy (или аналогичный). Однако вы можете не захотеть, чтобы ваш полный проект находился на производственном компьютере. В этом случае вы бы позвонили fab deploy на свой локальный компьютер. (Возможно написать разные deploy функции ...)


Вы спрашиваете особенно о подмодулях git. Я не вижу здесь смысла их использовать, так как это позволит вам иметь разные структуры папок на вашем локальном компьютере и на рабочем компьютере. Это может сработать (я думаю), но IMO это излишне.

...