Объединение и перемещение фиксации
Перейдите в каталог «git-tutorial/tutorial6», который вы скачали ранее.
Если вы изучите журнал этого репозитория, он будет выглядеть следующим образом:
Мы собираемся изменить фиксацию с сообщением «append description of the commit command».
Для этого мы будем использовать команду git rebase -i.
$ git rebase -i HEAD~~
Your default Ваш текстовый редактор по умолчанию откроет список фиксаций от HEAD
до HEAD~~
, как показано ниже.
pick 9a54fd4 append description of the commit command
pick 0d4a808 append description of the pull command
# Rebase 326fc9f..0d4a808 onto d286baa
#
# Commands:
# p, pick = use commit
# r, reword = use commit, but edit the commit message
# e, edit = use commit, but stop for amending
# s, squash = use commit, but meld into previous commit
# f, fixup = like "squash," but discard this commit log message
# x, exec = run command (the rest of the line) using shell
#
# If you remove a line here THAT COMMIT WILL BE LOST.
# However, if you remove everything, the rebase will be aborted.
#
В первой строке измените слово pick
на edit
, затем сохраните и выйдите.
Вы увидите следующий текст и выйдете из этой фиксации.
Stopped at d286baa... append description of the commit command
You can amend the commit now, with
git commit --amend
Once you are satisfied with your changes, run
git rebase --continue
Откройте файл sample.txt
и внесите изменения, как показано ниже.
Anyone can learn Git with this tutorial and Backlog
add: Register a change in an index
commit: Record index state.
pull: Obtain the content of the remote repository
Используйте команду git commit --amend
, чтобы зафиксировать изменение.
$ git add sample.txt
$ git commit --amend
Затем выполните команду git rebase --continue
, чтобы завершить процесс перебазирования.
$ git rebase --continue
При выполнении перебазирования текущей ветки вы можете столкнуться с конфликтами в ваших изменениях. Чтобы продолжить, вам необходимо вручную решить эти конфликты, а затем выполнить команды git add
и git rebase --continue
. Нет необходимости создавать новые фиксации для решения конфликтов.
Однако, если вы хотите остановить перебазирование, вы можете выполнить команду git rebase --abort
, которая отменит весь процесс и завершит его, а также успешно изменит фиксацию.
В тех случаях, когда вы указываете edit
более чем в одной строке при вызове git rebase -i
, вам будет предложено изменить каждую фиксацию по одной.