Как перенести изменения из одной ветки в другую в Git

How Pull Changes From One Branch Another Git



Репозиторий git содержит одну или несколько веток для эффективного управления кодом. Иногда пользователям git необходимо работать с несколькими ветвями одновременно и перед фиксацией требуется переключиться с одной ветки на другую с изменениями, сделанными в предыдущей ветке в текущую ветвь. Эту задачу можно выполнить несколькими способами в git. Команду stash можно использовать из терминала и команды слияния на рабочем столе GitHub, чтобы перенести изменения из одной ветки в другую в этом руководстве.

Предпосылки

1. Установите GitHub Desktop.
GitHub Desktop помогает пользователю git графически выполнять задачи, связанные с git. Вы можете легко загрузить последнюю версию установщика этого приложения для Ubuntu с github.com. Вы должны установить и настроить это приложение после загрузки, чтобы использовать его. Вы также можете проверить руководство по установке GitHub Desktop в Ubuntu, чтобы правильно узнать процесс установки.







2. Создайте учетную запись GitHub.
Вам потребуется создать учетную запись GitHub, чтобы проверить внешний вид удаленного репозитория после публикации изменения локального репозитория.



3. Создайте локальный репозиторий.
Вы должны создать локальный репозиторий, чтобы проверить команды, используемые в этом руководстве.



Использование команды stash

Локальный репозиторий с именем PHP2 был использован в этом руководстве, чтобы показать, как перенести изменения из одной ветки в другую ветвь репозитория. Создайте файл с именем index.html в репозитории. Откройте терминал и перейдите в папку репозитория. Выполните следующие команды, чтобы проверить список ветвей, переключиться на главную ветку и отобразить состояние ветки.





$ git ветка
$ git checkout master
$ git status

Следующий вывод появится после выполнения указанной выше команды. Выходные данные показывают, что репозиторий содержит две ветки и главный ветка была активна изначально. После перехода на мастер ветвь, вывод статуса показывает, что текущая ветвь активна и index.html файл не отслеживается.



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

$ git add index.html
$ git status

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

Выполните следующие команды и снова проверьте состояние репозитория git. Команда `git stash` работает как команда` git commit`. После выполнения этой команды рабочий каталог репозитория будет очищен.

$ git stash
$ git status

Следующий вывод появится при выполнении вышеуказанных команд.

После выполнения команды stash для ветки, если пользователь git хочет перенести изменения ветки в другую ветку, это можно легко сделать с помощью команды git stash pop, которая работает как команда git merge. Выполните следующие команды, чтобы переключиться на главный ветвь и вытащите изменения из мастер ветвь к главный ветвь.

$ git checkout main
$ git stash pop

Следующий вывод появится после выполнения вышеуказанной команды, которая показывает, что текущая ветвь главный и index.html файл добавлен в эту ветку.

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

$ git commit -m 'добавлен индексный файл'
$ git status

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

Если изменения локального репозитория передаются в удаленный репозиторий, а удаленный репозиторий открывается с github.com, то репозиторий будет выглядеть, как на следующем изображении.

Использование команды слияния

В этой части этого руководства показан еще один способ переноса изменений из одной ветки в другую. Локальный репозиторий с именем файл для чтения использовал здесь. Создайте файл с именем read.php в расположении репозитория. Выполните следующие команды, чтобы переключиться в главную ветку, добавить файл read.php и зафиксировать задачу. Команда ветки отобразит список веток. Команда checkout переключит ветку на главную. Команда status отобразит текущий статус ветви. Команда добавления добавит неотслеживаемый файл в репозиторий. Команда фиксации подтвердит задачу.

$ git ветка
$ git checkout master
$ git status
$ git добавить read.php
$ git commit -m 'Добавлен сценарий чтения'

Следующий вывод появится после выполнения вышеуказанных команд. Файл read.php был добавлен в главную ветку репозитория, и задача также была зафиксирована.

После выполнения вышеуказанной задачи, если изменения внесены в мастер филиал требует перевода в главный филиал, тогда слияние команда может использоваться для выполнения этой задачи. Команду слияния можно использовать из терминала или с помощью приложения GitHub Desktop. В этой части руководства показан способ использования GitHub Desktop для объединения веток. Откройте локальный репозиторий на рабочем столе GitHub. Откройте диалоговое окно списка ветвей, нажав список филиалов от Вид меню и выберите главный ветвь как активная ветка. Теперь нажмите на Присоединиться к текущей ветке… от Ветвь меню. Выберите мастер ответвите в диалоговом окне и щелкните Слить мастер с основным кнопку, чтобы вытащить изменения мастер разветвляться на главный ветвь. Вы можете удалить мастер ветвь после завершения операции слияния, если ветке не требуется репозиторий.

Заключение

В этом руководстве были показаны два разных способа переноса изменений из одной ветки в другую с использованием двух демонстрационных локальных репозиториев. В тайник а также идти здесь были использованы команды git для выполнения этой задачи. GitHub Desktop использовался в этом руководстве, чтобы показать способ объединения ветвей графически.