Зачем нужны системы контроля версий и какую выбрать?
Чтобы при очередной правке не поломать сайт, были придуманы специальные системы, которые следят за изменениями файлов и позволяют вернуть время вспять. Попутно также решается проблема работы двух и более разработчиков над одним проектом — они могут работать параллельно и не мешать друг другу, а когда настанет время внедрения, их работа будет автоматически (если повезет) или с помощью главного разработчика объединена.
Я всегда пользовался Mercurial (HG) для контроля версий. Она просто ставится, у нее легкие запоминающиеся команды и разобраться в ней очень просто. К ней также есть много приложений-визуализаторов, которые показывают изменения, ветки, коммиты и прочие радости не в виде командной строки, а в пользовательском графическом интерфейсе. И в целом технология меня устраивает, но ведь все почему-то вокруг меня уходят из Mercurial в его конкурента — Git. Сегодня я решил, что не должно это пройти мимо меня, и начал изучать что к чему. По факту, конечно, это такая система контроля версий, просто к ней прикручено гораздо больше интересных сервисов, а для визуализации процесса разработки уже и программа-то не нужна — все делают специализированные онлайн-сервисы, например GitLab. Схема работы строится следующим образом: на сервере инициируется репозиторий, потом он клонируется на gitlab и эта связь постоянна. Разработчики не получают доступ к серверу! Они могут скопировать сайт с gitlab к себе на сервер, провести доработку, оттестировать ее и отправить на gitlab обратно. И оттуда уже доработка пойдет в бой, на главный сервер. На мой взгляд, это очень удобно и практично с точки зрения безопасности бизнеса — сервер всегда в руках бизнеса, любую доработку можно откатить, если все пошло совсем не так. Главное не забывать делать резервные копии баз данных.
Пока я на самом начале своего образовательного процесса по GitLab, но мне уже нравится. Что особенно хорошо, на каждом этапе настройки даются необходимые для выполнения на сервере команды:
Невероятно правильный подход. Получается, что порог входа в системы контроля версий значительно снижается. Все-таки нужно признать, что Mercurial изучить чуточку сложнее, во многом из-за страшного вида документации на десятки страниц, где для старта нужно всего 2-3 команды, как на скриншоте выше.
А если еще SourceTree поставить вообще будет просто и удобно.
А она у меня и стоит для Mercurial, удобная. А еще MacHG — тоже весьма неплохой вариант, но выглядит слабовато и стабильность не та.
Для Mercurial есть https://bitbucket.org/ делает все тоже самое, что и github/gitlab.
Gitlab хорош тем, что позволяет развернуть все у себя на сервере.