Как мне организовать свои репозитории и ветки Git для создания нескольких версий сайта? - PullRequest
5 голосов
/ 04 февраля 2011

Я пользователь SVN, надеющийся перейти на Git. Я читаю документацию и учебные пособия весь день, и у меня до сих пор остаются вопросы без ответов. Я не знаю, будет ли этот рабочий процесс иметь смысл, но вот моя ситуация и что я хотел бы получить из своего рабочего процесса:

  • Несколько разработчиков, все разработчики локально на своих рабочих станциях
  • 3 версии сайта: Dev, Staging, Production

Вот моя мечта:

Разработчик работает локально в своей собственной ветке, скажем «developer1», тестирует на своей локальной машине и фиксирует свои изменения.

Другой разработчик может перенести эти изменения в свою собственную ветку. Слияние developer1 -> developer2.

Когда произведение будет готово для обозрения публикой, я хотел бы иметь возможность "толкнуть" к Dev, Staging или Production.

git push origin staging 

или, может быть

git merge developer1 staging

Я не уверен. Как я уже сказал, я все еще новичок в Git.

Вот мои основные вопросы:

  • Должны ли мои сайты (Dev, Staging, Production) быть репозиториями? И должны ли они быть «голыми», чтобы быть получателями новых изменений?

  • Хочу один или несколько хранилищ с несколькими ветками?

  • Имеет ли это смысл, или я не на том пути?

Я прочитал много уроков, так что я действительно надеюсь, что кто-то может просто помочь мне с моей конкретной ситуацией. Большое спасибо!

Ответы [ 3 ]

3 голосов
/ 04 февраля 2011

Статья, которую я рекомендую прочитать: Успешная модель ветвления Git . В нем рассматриваются ситуации, которые вы описываете, а также некоторые другие.

0 голосов
/ 20 ноября 2011

Как подсказал @Greg, отличная идея - следовать модели успешного ветвления в Git от nvie. Оттуда я бы предложил прочитать о том, как использовать git для веб-сайтов, и попытаться реализовать это с учетом модели ветвления.

Короче говоря:

  • Следуйте модели ветвления git до T
  • Настройте свою систему так, чтобы git передавал ветки релизов на ваш промежуточный сервер, как описано во второй статье
  • Настройте git up, чтобы передать основную ветку на рабочий сервер, следуя той же настройке промежуточного сервера
0 голосов
/ 04 февраля 2011

Помните о распределенности. В отличие от Subversion, извлечения ваших разработчиков - это их собственные репозитории , а не просто рабочие копии. В своем обычном рабочем процессе они будут фиксировать свои изменения в собственном репозитории , создавать и манипулировать личными ветвями и т. Д. git push может использоваться для передачи коммитов из локальных веток в ваш «основной», исходный репозиторий (который вероятно будет проживать на веб-хостинге). Поэтому у каждого разработчика будет локальное личное репо с любым набором веток, который он пожелает; хранилище происхождения будет иметь три упомянутые ветви. Время от времени разработчики будут git pull другие работать из репо-источника (в некоторые локальное отделение) и git push свои собственные работы в соответствующих ветках репо-источника.

...