В данной статье мы рассмотрим основы управления ветками в Git.
Операция branch позволяет нам создавать новую линию разработки. Мы можем использовать данную операцию для разделения процесса разработки на несколько различных направлений. Например, у нас есть готовый проект с версией 1.0 и мы хотим начать работу над новой версией 2.0. При этом мы хотим, чтобы наша версия 1.0 была неизменной, поэтому имеет смысл вести разработку новой версии отдельно от версии 1.0
Создание новой ветки
Для создания новой ветки нам необходимо использовать следующую команду:
git branch version_2.0
Теперь посмотрим, какие именно ветки есть в нашем проекте:
git branch
* master
version_2.0
Звёздочкой отмечена активная ветка master – которая является главной веткой проекта по умолчанию.
Переключение между ветками
Для переключения между ветками используется следующая операция:
git checkout version_2.0
Switched to branch 'version_2.0'
Графически это можно представить следующим образом:
Мы можем объединить процесс создания новой ветки и переключения на неё.
Для этого используется следующая команда:
git checkout -b new_branch
Switched to a new branch 'new_branch'
Проверим какие ветки есть в проекте, и какая из них активна:
git branch
master
* new_branch
version_2.0
Предположим, что мы внесём изменения в ветке new_branch.
Структура проекта в ветке master выглядит так:
Добавим новый класс в ветке new_branch, а именно, добавим новый класс:
Customer.java
package net.proselyte.gittutorial.company;
import java.util.Set;
/**
* Simple JavaBean domain object that represents a Customer
*
* @author Eugene Suleimanov
* @version 1.0
*/
public class Customer {
private String name;
private Set projects;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Set getProjects() {
return projects;
}
public void setProjects(Set projects) {
this.projects = projects;
}
@Override
public String toString() {
return "Customer{" +
"name='" + name + '\'' +
", projects=" + projects +
'}';
}
}
И подтвердим данные изменения:
git add --all
git commit -m "Adding class Customer.java"
[new_branch 8d9522c] Adding class Customer.java
2 files changed, 155 insertions(+), 20 deletions(-)
create mode 100644 src/net/proselyte/gittutorial/company/Customer.java
Посмотрим структуру проекта в ветке new_branch:
Переключаемся на ветку master:
git checkout master
Switched to branch 'master'
И проверим структуру проекта:
Как мы видим, ветка master осталась неизменной.
Для того, чтобы применить изменения в данной ветке нам необходимо выполнить слияние ветки master с веткой new_branch.
Слияние веток
Для слияния двух веток используется команда merge.
Переключаемся на ветку, с которой хотим выполнить слияние:
git checkout master
Switched to branch 'master'
И выполняем следующую команду:
git merge new_branch
Updating 3dab8e0..ef74ec7
Fast-forward
src/net/proselyte/gittutorial/company/Customer.java | 38 +++++++++++++++++++++++++++++
1 file changed, 152 insertions(+), 19 deletions(-)
create mode 100644 src/net/proselyte/gittutorial/company/Customer.java
Проверим структуру проекта в основной ветке после слияния:
Удаление веток
На данный момент в нашем проекте есть следующие ветки:
git branch
* master
new_branch
version_2.0
Ветки new_branch и version_2.0 нам больше не нужны и мы можем их удалить.
Для удаления веток используется следующая команда:
git branch -D new_branch
Deleted branch new_branch (was ef74ec7).
Повторим процесс для ветки version_2.0
git branch -D version_2.0
Deleted branch version_2.0 (was d27f1a0).
Теперь проверим ветки проекта:
git branch
* master
На этом мы заканчиваем изучение управления ветками и изучение технологии Git.
Более подробно с Git вы можете ознакомиться, изучив книгу Pro Git по ссылке: https://git-scm.com/book/en/v2