Использование git как лучшего SVN - PullRequest
4 голосов
/ 04 февраля 2011

Мы были магазином SVN - теперь мы используем git (потому что все крутые ребята делают это).

Каждый разработчик локально проверяет код на своем собственном git-дереве, работая над новыми функциями. Когда некоторые работы готовы к отправке в главный репозиторий, у нас есть каталог на общем диске для каждого проекта. Затем мы делаем git push для этого репо и либо git sync, либо git pull, чтобы обновить отдельную машину разработчика из «одного истинного источника».

У нас был один несчастный случай, когда кто-то сделал толчок к хранилищу и каким-то образом сумел заменить основное репо версией собственного git-дерева для dev-машины.

Это лучший «мерзкий» способ делать вещи?

Мы находимся на двух сайтах, но общий каталог является общим. Небольшое количество разработчиков, которые обычно могут избежать серьезных конфликтов в области кода. Все в Windows, с использованием TortoiseGit, безопасность не так важна, но у нас нет поддержки администратора, поэтому вышло комплексное серверное решение.

Ответы [ 4 ]

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

Git является мощным.Он распространяется, но не ограничивает вас от централизации, если вы хотите.

В отличие от svn tho ', очень важно настроить свои собственные соглашения и способы работы.

Очень хорошая модель для подражания будет проиллюстрирована на диаграмме ниже enter image description here

из популярной модели git ветвления .

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

Посмотрите на рабочие процессы по следующей ссылке. Я предпочитаю рабочий процесс менеджера интеграции (аналогично второму варианту @ simon) и соответствующий модели github: http://progit.org/book/ch5-1.html

2 голосов
/ 05 февраля 2011

Два распространенных способа использования git:

  • Все разработчики вытягивают и ведут в центральное репо (как вы делаете сейчас)

  • У каждого разработчика есть одно частное репо и одно публичное репо.Он извлекает то, что он хочет из других общедоступных репо, и продвигает только в свое публичное репо.

Если вы выберете второй вариант, и ваш код не обязательно должен быть закрытым, вы можетеиспользуйте github , чтобы упростить свою жизнь.

0 голосов
/ 07 февраля 2011

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

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

Не забудьте удалить свои ветви после их использования, иначе это может сбить с толку. На самом деле у меня есть специальная ветвь с именем branches, которая отслеживает со git merge -s ours ... ссылками на все остальные ветви в их решающих точках (ветвь, слияние, конец), так что даже если я удаляю ветку без реального слияния (например, так как Я решил не идти по этому пути, или это была только какая-то ветка по поиску ошибок), у меня все еще есть ссылка на нее, и я могу восстановить ее при необходимости.

...