Базовый принцип организации работы в git

 

Работа с 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 удаленого репозитория
  
Кейсы