Введение
🧑💻 Новый в Git или LabEx? Мы рекомендуем начать с курса Быстрый старт с Git.
Git - это мощная система контроля версий, которая позволяет разработчикам отслеживать изменения в их кодовой базе. Одной из полезных функций Git является возможность перемещать коммиты из одной ветки в другую. Это может быть полезно, если вы понимаете, что некоторые изменения, которые вы внесли в ветку master, должны были быть сделаны на отдельной ветке. В этом лабе вы научитесь перемещать коммиты из ветки master в новую ветку.
Перемещение коммитов в новую ветку
Для этого лабы давайте используем репозиторий из https://github.com/labex-labs/git-playground. Вы работали над проектом в ветке master. Вы понимаете, что некоторые из внесенных вами изменений должны были быть сделаны на отдельной ветке. Вы хотите перенести эти изменения в новую ветку под названием feature.
- Клонируйте репозиторий, перейдите в директорию и настройте идентификацию:
git clone https://github.com/labex-labs/git-playground
cd git-playground
git config --global user.name "your-username"
git config --global user.email "your-email"
- Переключитесь на ветку
master:
git checkout master
- Создайте файл под названием
hello.txt, добавьте в него "hello, world", добавьте его в staging-область и отправьте с сообщением "Added hello.txt":
echo "hello,world" >> hello.txt
git add.
git commit -m "Added hello.txt"
- Создайте новую ветку под названием
feature, не переключаясь на нее. Когда вы создаете новую ветку на основе веткиmaster, состояние новой ветки такое же, как и у веткиmaster, то есть файлы в новой ветке такие же, как и файлы в веткеmaster, с тем же содержанием и историей версий:
git branch feature
- Отмените последний коммит на
master:
git reset HEAD~1 --hard
- Проверьте историю коммитов на ветке
masterи историю коммитов на веткеfeature, чтобы проверить результаты:
git log
git checkout feature
git log
Вот результат выполнения git log:
commit 7969ab5d6606e2a40c9fd826c732206b835976e9 (HEAD -> feature)
Author: xiaoshengyunan <@users.noreply.github.com>
Date: Fri Jul 21 20:19:22 2023 +0800
Added hello.txt
Резюме
Перемещение коммитов из одной ветки в другую может быть полезной функцией при работе с Git. В этом лабе вы узнали, как перемещать коммиты из ветки master в новую ветку с использованием команд git branch, git reset и git checkout. Помните, что это работает только в том случае, если изменения были только закоммичены локально и не были отправлены на удаленный репозиторий.