Поиск по сайту:

Как использовать ветки Git


Эта статья является третьей частью серии «Использование Git».

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

В этом руководстве вы узнаете, как создать две ветки (мастер и разработка) и как объединить код со стадии разработки в рабочую среду.

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

По умолчанию первая ветвь называется «мастер».

Просмотр веток

Прежде чем создавать новые ветки, мы хотим увидеть все существующие ветки.

git branch -a

Добавление \-a\ в конец нашей команды говорит GIT, что мы хотим видеть все существующие ветки, включая те, которых нет в нашей

Вывод будет выглядеть примерно так:

* master
  remotes/origin/master

Звездочка рядом с «хозяином» в первой строке вывода указывает, что мы в настоящее время находимся на этой ветке.

Теперь, когда мы знаем, как просматривать ветки, пришло время создать нашу первую.

Создание веток

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

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

Чтобы создать новую ветку с именем develop, введите следующее:

git checkout -b develop

Предполагая, что у нас еще нет ветки с именем \develop\, вывод будет следующим:

Switched to a new branch 'develop'

В случае, если ветка с таким именем уже существует, GIT сообщит нам следующее:

fatal: A branch named 'develop' already exists.

Вы можете переключаться между двумя вашими ветвями с помощью команды git checkout:

git checkout master

или

git checkout develop

Предполагая, что ветка, на которую вы пытаетесь переключиться, существует, вы увидите вывод, похожий на следующий:

Switched to branch 'master'

Если вы попытаетесь переключиться на несуществующую ветку, например

git checkout nosuchbranch

Гит скажет вам:

error: pathspec 'nosuchbranch' did not match any file(s) known to git.

Теперь, когда у нас есть несколько ветвей, нам нужно использовать их с пользой.

Чтобы проиллюстрировать этот процесс, нам нужно вернуться к нашей ветке разработки:

git checkout develop

Внесение изменений в нашу ветку разработки

В этой ветке мы собираемся создать новый пустой файл с именем \develop\.

touch develop 

Как и в предыдущем уроке, нам нужно сообщить git, что мы хотим отслеживать этот новый файл.

Мы можем добавить файл разработки, набрав:

git add develop 

Приведенный выше набор команд создаст пустой файл с именем \develop\ и добавит его в GIT.

Нам также нужно зафиксировать этот файл, который прикрепит этот файл к ветке, в которой он сейчас находится, то есть \develop\.

git commit -m "develop file" develop 

Этот файл теперь существует в ветке разработки; как собирался выяснить, его не существует в основной ветке.

Во-первых, мы собираемся подтвердить, что в настоящее время мы находимся в ветке разработки. Мы можем сделать это, набрав следующее:

git branch 

Вывод должен выглядеть примерно так:

* develop
  master

Ранее мы узнали, что звездочка рядом с названием ветки указывает на то, что мы в данный момент находимся в этой ветке.

Выполнение команды \ls\ покажет нам, что два файла существуют:

ls

Вывод покажет нам, что оба наших файла, названные соответственно \file\ и \develop\, найдены:

develop file

Слияние кода между ветвями

Самое интересное начинается после того, как мы вернемся к нашей основной ветке, что мы можем сделать с помощью команды git checkout:

git checkout master

Чтобы убедиться, что мы находимся в основной ветке, мы можем запустить следующее:

git branch 

Вывод скажет нам, к какой ветке мы относимся, обозначенной звездочкой.

  develop 
* master

Снова запустив \ls\, оказалось, что наш новый файл отсутствует.

file

Он не отсутствует — он находится в нашей ветке разработки, а мы — в нашей основной ветке.

В нашем сценарии этот файл представляет собой любое изменение в любом файле (или совершенно новый файл), который прошел все испытания в нашей ветке разработки и готов к работе.

При слиянии важно помнить, что мы хотим быть на ветке, с которой хотим слиться.

В этом случае мы хотим объединить нашу ветку разработки, где существует файл разработки, в нашу основную ветку.

Имея это в виду, учитывая, что мы уже находимся в основной ветке, все, что нам нужно сделать, это запустить команду слияния.

Одна из опций, которую мы можем передать команде слияния, а именно \--no-ff\, означает, что мы хотим, чтобы git сохранял все сообщения фиксации до слияния. Это облегчит отслеживание изменений в будущем.

Чтобы объединить изменения из ветки разработки в ветку master, введите следующее:

git merge develop --no-ff

Вывод команды будет похож на следующий:

Merge made by the 'recursive' strategy.
 0 files changed
 create mode 100644 develop

Запуск команды ls еще раз подтвердит, что наш файл разработки теперь находится в нашей главной ветке.

develop file

Последнее, что нам теперь нужно сделать, чтобы внести это изменение на наш удаленный сервер, — это отправить наши изменения, что мы можем сделать с помощью команды git push.

git push

Вы увидите вывод, аналогичный следующему, подтверждающий, что вы выполнили слияние из ветки разработки в ветку master на удаленном сервере:

Counting objects: 4, done.
Delta compression using up to 2 threads.
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 332 bytes, done.
Total 3 (delta 1), reused 0 (delta 0)
To ssh://git@git.domain.tld/repository
   9af2dcb..53649cf  master -> master

Заключение

Следуя приведенному выше руководству, вы должны иметь работающую настройку рабочего процесса с двумя ветвями и, надеюсь, понимание того, как