Команды журнала фиксаций Git
- Изменение предыдущей фиксации и сообщений
- Изменение и перемещение прошлых фиксаций и сообщений
- Выход из режима перебазирования
- Отображение справочного журнала
- Отображение справочного журнала конца ветки
- Удаление предыдущей фиксации
- Сброс перебазирования
- Отмена предыдущего сброса
- Копирование фиксации из другой ветки
- Поиск сообщения фиксации
Изменение предыдущей фиксации и сообщений
$ git commit --amend
Добавьте параметр --amend
, чтобы перезаписать последнюю фиксацию ветки, над которой вы работаете.
Если в индексе нет файлов, вы можете повторно зафиксировать предыдущую фиксацию, добавив параметр --amend
, и вам будет предложено отредактировать существующее сообщение фиксации.
См.:
- Основы Git > Изменение фиксаций
-
Как использовать Git > Изменение фиксации
Изменение и перемещение прошлых фиксаций и сообщений
$ git rebase -i <commit>
Добавьте хеш фиксации, в результате будет отображен список всех фиксаций до последней фиксации. Найдите фиксацию, которую необходимо изменить, и измените эту строку с pick
(Выбрать) на edit
(Редактировать), затем сохраните и закройте.
Затем добавьте параметр --amend
для фиксации. Отобразится экран добавления сообщения. Измените сообщение.
$ git commit --amend
Наконец, добавьте параметр --continue
для запуска перебазирования.
$ git rebase --continue
См.:
- Сотрудничество в Git > Перебазирование ветвей
-
Как использовать Git > Объединение и перемещение фиксации
Выход из режима перебазирования
$ git rebase --abort
Добавив параметр --abort
, вы можете выйти из операции перебазирования.
Отображение справочного журнала
$ git reflog
Команда reflog позволяет увидеть список фиксаций, которые использовались HEAD для указания в прошлом.
08084a5 HEAD@{0}: commit: append description of the pull command
99daed2 HEAD@{1}: commit: append description of the commit command
48eec1d HEAD@{2}: checkout: moving from main to issue1
326fc9f HEAD@{3}: commit: append description of the add command
48eec1d HEAD@{4}: commit (initial): first commit
Будут отображаться как удаленные, так и успешные фиксации, собранные с помощью перебазирования.
Отображение справочного журнала конца ветки
$ git reflog <ref>
Эта команда покажет список фиксаций для каждого раза, когда изменялся конец <ref>
, как показано ниже.
445e0ae issue1@{0}: commit (merge): Merge branch 'main' into issue1
1c904bd issue1@{1}: commit (amend): modify description of the pull command
08084a5 issue1@{2}: commit: append description of the pull command
99daed2 issue1@{3}: commit: append description of the commit command
48eec1d issue1@{4}: branch: Created from 48eec1ddf73a7fb508ef664efd6b3d873631742f
Мы можем видеть журнал перебазирования как удаленных, так и существующих фиксаций.
Удаление предыдущей фиксации
$ git reset --hard HEAD~
См.:
- Основы Git > Удаление фиксаций
-
Как использовать Git > Удаление предыдущей фиксации
Сброс перебазирования
$ git reset --hard <commit>
Используйте команду reflog для поиска фиксаций до того, как они были перебазированы. Определите хеш фиксации или значение [HEAD@{number}]
фиксации, которая произошла до перебазирования. В этом примере 71bdfbd
и HEAD@{4}
являются ссылками на фиксацию.
a51f8d2 HEAD@{0}: rebase -i (finish): returning to refs/heads/dev
a51f8d2 HEAD@{1}: rebase -i (squash): update 1
3a273e1 HEAD@{2}: rebase -i (squash): updating HEAD
f55ef69 HEAD@{3}: checkout: moving from dev to f55ef69
71bdfbd HEAD@{4}: commit: update 2
f55ef69 HEAD@{5}: commit (amend): update 1
Добавьте значение хэш (71bdfbd
и HEAD@{4}
) к <commit>
(фиксация) при выполнении команды сброса.
Головная позиция ветки теперь переместится на фиксацию, выполненную до осуществления перебазирования. Состояние ветки теперь будет идентично состоянию до выполнения перебазирования.
Отмена предыдущего сброса
$ git reset --hard ORIG_HEAD
ORIG_HEAD ссылается на фиксацию, выполненную до того, как произошел сброс. Вы можете отменить предыдущий сброс, используя сброс до ORIG_HEAD.
Копирование фиксации из другой ветки
$ git cherry-pick "<commit>"
Фиксация, идентифицированная хешем, будет скопирована в текущую ветку.
См.:
- Основы Git > Копирование фиксаций в другие ветки
-
Как использовать Git > Копирование фиксации в другую ветку
Поиск сообщения фиксации
$ git log --grep "<pattern>"
Отображает фиксации с текстом, указанным в <pattern>
.