Работа с GIT может быть настроена разными способами, исходя из удобства и предпочтений. Но базовый вариант работы предполагает наличие основной ветки рабочего проекта и создание новых веток под каждую из новых задач с последующим слиянием их с основной веткой проекта.
Изначально, ри инициализации Git мы имеем базовую рабочую ветку проекта (master). Для новой доработки проекта создается новая ветка, к примеру название будет "test-new-addon". Стоит заметить, что названия веток лучше указывать максимально расширенным с перечислением всех планируемых доработок ветки.
Перед началом работ всегда лучше обновить локальный репозиторий данными с удаленного репозитория, чтобы версия была актуальная.
//в косоли SSH git pull origin master
Создадим новую ветку
//в косоли SSH git branch test-new-addon //branch команда создает новую ветку
Теперь, когда новая ветка создана, необходимо переключиться на нее.
//в косоли SSH git checkout test-new-addon //checkout - команда переключает ветки
Вносим нужные изменения в нужные файлы и комитим их.
//в косоли SSH git commit -m "something new changed"
В нашем локальном репозитории все готово. Теперь нужно внести изменения в удаленный репозиторий.
//в косоли SSH git push -u origin test-new-addon // символ -u обозначает что все изменения будут отслеживаться
Если все прошло успешно то мы должны увидеть надпись:
//в косоли SSH Branch 'test-new-addon' set up to track remote branch 'test-new-addon' from 'origin'.
А в удаленном репозитории должна появится новая ветка.
теперь можно вести параллельную разработку какого-нибудь нового модуля или функционала в отдельной ветке. Когда разработка будет завершена останется только перенести все изменения в master ветку. Для этого их нужно будет объединить.
Необходимо переключиться в ветку master и сделать слияние.
//в косоли SSH git checkout master //переключаемся в ветку master git merge test-new-addon //сливаем две ветки
После этого возможны два варианта: бесконфликтное слияние, либо возникновение конфликтов слияния. Возникновение конфликтов возможно в случае, если имеются одинаковые файлы в разных ветках с разным контентом.
В случае же отсутствия конфликтов остается только выгрузить изменения из локального репозитория в удаленный.
//в косоли SSH git push -u origin master // символ -u обозначает что все изменения будут отслеживаться
После этого у нас и в локальном и в удаленном репозитории остается две ветки: базовая рабочая и ветка (master) новой законченной разработки (test-new-addon). Ветка разработки более не нужна и ее можно удалить.
//в косоли SSH git branch // выводим список локальных веток чтобы убедиться что все ок git branch -d test-new-addon // удаляем локально ветку test-new-addon git branch -r // выводим список веток удаленного репозитория git push origin --delete test-new-addon // удаляем ветку test-new-addon удаленого репозитория