Перенос коммитов в новую ветку

Beginner

This tutorial is from open-source community. Access the source code

Введение

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

Перемещение коммитов в новую ветку

Для этого лабы давайте используем репозиторий из https://github.com/labex-labs/git-playground. Вы работали над проектом в ветке master. Вы понимаете, что некоторые из внесенных вами изменений должны были быть сделаны на отдельной ветке. Вы хотите перенести эти изменения в новую ветку под названием feature.

  1. Клонируйте репозиторий, перейдите в директорию и настройте идентификацию:
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"
  1. Переключитесь на ветку master:
git checkout master
  1. Создайте файл под названием hello.txt, добавьте в него "hello, world", добавьте его в staging-область и отправьте с сообщением "Added hello.txt":
echo "hello,world" >> hello.txt
git add.
git commit -m "Added hello.txt"
  1. Создайте новую ветку под названием feature, не переключаясь на нее. Когда вы создаете новую ветку на основе ветки master, состояние новой ветки такое же, как и у ветки master, то есть файлы в новой ветке такие же, как и файлы в ветке master, с тем же содержанием и историей версий:
git branch feature
  1. Отмените последний коммит на master:
git reset HEAD~1 --hard
  1. Проверьте историю коммитов на ветке 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. Помните, что это работает только в том случае, если изменения были только закоммичены локально и не были отправлены на удаленный репозиторий.