Главная    Разработка ПО    Системы контроля версий: начинаем работать с GIT

Начинаем работать с системой контроля версий GIT (для чайников)

(Часть 4.3.14. Добавляем выбранный коммит из одной ветки в другую)

1. Устанавливаем Git.
2. Создаем репозиторий Git.
3. Устанавливаем SmartGit для работы с репзиторием.
4. Основы Работа с репозиторием Git.
4.1. Создаем проект для работы с репозиторием.
4.2. Добавляем первый файл в локальный репозиторий.
4.3. Вносим изменение в локальный репозиторий.
4.3.1. Добавляем строки в файл.
4.3.2. Изменяем строки в файле.
4.3.3. Удаляем строки из файла.
4.3.4. Отменяем изменения до загрузки в локальный репозиторий.
4.3.5. Добавляем новые файлы в репозиторий.
4.3.6. Удаляем файл из репозитория.
4.3.7. Просматриваем историю изменений репозитория.
4.3.8. Изменяем комментарий коммита.
4.3.9. Отменяем последний коммит.
4.3.10. Создаем новую ветку.
4.3.10.1. Новая ветка относительно последнего коммита.
4.3.10.2. Новая ветка относительно выбранного коммита.
4.3.11. Удаляем ветку.
4.3.12. Объединяем ветки.
4.3.13. Конфликты и их разрешение.
4.3.14. Добавляем выбранный коммит из одной ветки в другую.
4.3.15. Rebase или как упростить историю коммитов.
4.4. Работа с удаленным репозиторием.
4.4.1. Настраиваем связь между сервером и клиентом по SSH.
4.4.2. Клонируем репозиторий с ЭВМ-сервера на ЭВМ-клиент.
4.4.3. Основы работы с удаленным репозиторием.
5. Заключение.


4.3.14. Добавляем выбранный коммит из одной ветки в другую.

Выше мы рассмотрели как объединить ветки master и next, однако зачастую всю ветку объединять не требуется, а надо лишь взять из одной ветки конкретное изменение сохраненное отдельным коммитом и добавить в другую ветку. Рассмотрим на примере случай, когда нам нужно взять из ветки next отдельный коммит и добавить его в ветку master.

Для начало сохраним два изменения в ветке next, для его переключаемся в ветку next. Изменяем файл main.c, так:

#include < stdio.h >
#include < unistd.h >

int y=7;

int main (void)
{
printf (“Hello word!!!\n”);
y=y+3;
sleep (5);

return 0;
}

Синим цветом выделена добавленная строка. Сохраняем изменения в репозиторий с комментарием «First change for cherry-pick».

Вносим еще одно изменение в файл:

#include < stdio.h >
#include < unistd.h >

int y=7;
double t=0.1;
int main (void)
{
printf (“Hello word!!!\n”);
y=y+3;
sleep (5);

return 0;
}

Синим цветом выделена добавленная строка. Сохраняем изменения в репозиторий с комментарием «Second change for cherry-pick».

Переключаемся на ветку «master» и забираем из ветки next изменения сохраненные коммитом «First change for cherry-pick», для чего в меню Branch (рисунок 51) выбираем пункт Cherry-Pick.

В открывшемся окне (рисунок 52) выбираем коммит, который хотим добавить в ветку master (коммит «First change for cherry-pick»). По умолчанию в окне отображаются сразу все ветки проекта. Если у Вас в проекте много веток, то для простоты поиска нужного коммита можно вызвать окно выбора веток (кнопка Branches) и отметить только ту ветку, в которой находится Ваш коммит. Тогда в окне будет отображаться только отмеченная Вами ветка.

Меню Branch. Окно выбора коммитов для добавления.

После выбора коммита жмем «Cherry-Pick & Commit», если хотите сразу сохранить в ветку мастер выбранный коммит, или Cherry-Pick, если предварительно хотите посмотреть какие изменения будут произведены в ветке master, а потом самостоятельно сохранить их в репозиторий или откорректировать.

Если выбранный коммит не удалось объединить с веткой master, то будет сообщено о конфликте, как его разрешить описано в п.4.3.13

В нашем случае (если вы все делали как описано в статье) конфликтов не возникнет и после нажатия на кнопку «Cherry-Pick & Commit» изменения автоматически будут добавлены в ветку master.


<<< Предыдущий раздел      Следующий раздел >>>


Яндекс.Метрика

Рейтинг@Mail.ru