@sanok_ps
Веб-разработчик, php-бекенд, Вордпресс

Как построить систему контроля версий для веб-проекта?

Имеется веб-проект. Пока разработчик над ним я один. Локально разрабатываю сайт на Wordpress, вношу измененения, меняю функциональность. Работа больше всего с php, затем javascript и верстка. Новые фукнции тестируются локально, затем заливаются через ftp на тестовый домен, там еще раз тестируется работа на хостинге с другой БД, заодно показывается другим участникам проекта, после - обновляется оригинальная версия там же на хостинге.
Встал вопрос отслеживания изменений, ибо их уже много, а так же подключение других разработчиков.
Поэтому необходимо внедрять контроль версий, заодно всегда можно будет откатиться до предыдущего состояния, как понимаю.

Почитав тут другие вопросы-ответы пришел к выводу, что лучше сразу останавливаться на системе Git ради перспективности и её распространенности. Опыта и в разработке немного, а с системами контроля версий - вообще нет. Поэтому методом тыка не получилось ничего построить, прошу совета собственно как организовать все и построить.

Полное руководтво по Git слишком длинное, да и, как показалось, для пользователей Linux'a и везде команды для его коммандной строки.

На хостинге, естественно, возможности установить GitLab нету, только если бы выделенный сервер.
Локально стоит Windows 10, с Linux'om в жизни не имел дело.

Пришел к выводу, что нужно иметь один репозиторий (так?), с локального компьютера будет отправляться (коммититься?) туда, а с него уже - на тестовый домен для показа другим, а по финалу - на оригинальный домен. Что для этого нужно? Локально и на хостинге не получается создать его, значит, использовать либо GitHub (нужно приватный) либо например BitBucket (приватный бесплатный до 5 чел, поэтому выбрал его). На локальном компьютере для разработки сначала был установлен Git GUI, но затем выбран SourceTree после прочтения других ответов тут. Как работать дальше? Как подружить локальный клиент SourceTree и "родной" ему BitBucket? Как это все быстро заливать на тествый домен, затем на рабочий? Как подключить других людей к разработке?

По тому пути ли я иду? Ибо сам принцип изначальной постройки системы не совсем понятен из-за отсутствия опыта.
  • Вопрос задан
  • 3537 просмотров
Пригласить эксперта
Ответы на вопрос 5
BitBucket имеет такую штуку - Pipelines https://bitbucket.org/product/features/pipelines
Эта штука нужна для того, чтобы не заливать результат по FTP руками, делаете допустим из бранча мастер - заливку на продакшн хостинг, а из бранча девелоп на хостинг для тестирования с другими людьми
Теперь
1) https://git-scm.com/book/ru/v2 Полное руководство обязательно к прочтению
2) Не зная команды линукса вы не настроите непрерывную интеграцию, учите
Ответ написан
@malbaron
Во первых - не обязательно это должен быть git.
Есть треккеры с issue.

Git - следит за исходным кодом. Но возможно вам будет удобнее прописывать подробности именно в отдельном issue, а не в комментариях к коммиту в git.

Можно и совмещать.

Во вторых, полное руководство по git читать не обязательно.
По минимуму, достаточно даже двух команд:

git commit -a -m "Описание изменений"
git push

В третьих
Gitlab (и прочее свое ПО на свой сервер) ставить не обязательно. Они предоставляют услугу (даже бесплатную вроде) - по размещеню кода у них.
Так же подобную услугу предоставляет BitBucket (бесплатно), но функционал меньше чем у Гитлаба.
Также за небольшие денежки подобная услуга есть у GitHub.

В четвертых
При работе большой толпой лучше разделить репозитарии на отдельные по смыслу, а не работать в одной большой общей репе - по модулям, фронтенд, бекэнд и пр. и пр.
Хотя можно работать и в одной репе, но тогда придется больше уделять внимания слияниям.
При работе в одного - одного общего на все модуля (фронтенд, бекэнд) репозитария достаточно.

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

В шестых
Тестовая для показа и итоговая для выгрузки на боевой сервер можно решать ветками.
Традиционно ветка называемая "master" - это основная (боевая).

В седьмых
GitLab довольно тяжеловесен и требователен к серверу
Если уж хочется нечто похожее на свой личный GitLab то имеет смысл посмотреть
на https://habrahabr.ru/company/selectel/blog/305422/

В восьмых
Графические клиенты для git (SourceTree) вам вряд ли понадобятся - они полезны разве что если у вас будет очень много веток и их объединений. Да и то - возможностей у Gitlab для визуального наблюдения изменений довольно много.
Ответ написан
saboteur_kiev
@saboteur_kiev Куратор тега Git
software engineer
git работает и в винде и в линукс, а изучить несколько команд в командной строке не проблема.
git init это не команда linux, это команда git, и работает одинаково и там и там. Разница может только в особенностях файловой системы (аттрибуты и права доступа), но вы все равно по ftp заливаете.

Не обязательно ставить сервер, можно просто работать в локальном репозитории, просто при ftp нужно будет не копировать папку .git

Официальная документация на официальном сайте git прекрасно описана чтобы сразу начать (есть даже на русском), или чтобы читать глубоко и полно.
Ответ написан
zorca
@zorca Куратор тега WordPress
Bitbucket - отличный сервис, SourceTree глючноват, возможны зависания при отправке коммитов на сервер, особенно при слабых параметрах машины. Мне больше нравится SmartGit - шустрый, безглючный, правда интерфейс только английский.
Ответ написан
Комментировать
deniscopro
@deniscopro Куратор тега WordPress
WordPress-разработчик, denisco.pro
Возможно, пригодится VersionPress.
У самого пока, к сожалению, руки так и не дошли попробовать, но периодически встречаю упоминания.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы