Еще раз про гит

Sep 23, 2011 21:47




На Хабре человек спрашивает - как ему юзать git? Какой, так сказать, бест-практикс и передовой опыт?

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

Правильная метода, однако, такая:

1. Создаете удаленный репозиторий. Это репозиторий, доступный из всех мест, на которых вы работаете. Если у вас нет своего сервера, то лучшим решением будет, пожалуй, гитхаб.

2. На каждом из рабочих мест клонируете удаленный репозиторий, т.е. создаете локальный репозиторий.

3. На любом из рабочих мест делаете первый стартовый коммит - все файлы проекта отправляете в бранч master. Затем пушите мастер в удаленный репозиторий.

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

5. На другом рабочем месте получаете этот бранч из удаленного репозитория и продолжаете работу. Не успели доделать - снова пушите бранч в удаленный репозиторий и переходите на третье рабочее  место, четвертое, и.т.д.

6. Когда работа, наконец, доделана, мержите этот бранч с мастером и мастер тоже отправляете в удаленный репозиторий. Бранч после этого можно удалить, он больше не нужен.

7. Мастер с удаленного репозитория считывается уже в продакшен (ну, если у вас есть продакшен).

9. Если во время работы в бранче возникает необходимость сделать еще какую-то другую работу - создаете для этой работы еще один бранч от мастера. Сколько задач - столько и бранчей. Тут нужно иметь силу воли и не поступать по принципу "да щас быстренько поправлю это прямо тут, лень отдельный бранч делать". Есть задача - сделайте бранч. В этом залог успеха и безгеморройной работы с любым количеством модификаций кода.

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

Хозяйке на заметку - мерж с мастером делайте всегда с ключом --no-ff. Этот ключ не дает выполнить линейное слияние бранча с мастером, что позволит в дальнейшем откатить бранч целиком (если вдруг случится какой косяк), а не разбираться с отдельными коммитами.

git

Previous post Next post
Up