Skip to main content
  1. Learn
  2. Software Development
  3. Guides
  4. Git tutorial
  5. Команды и настройки Git
  6. Команды журнала фиксаций Git
GuidesSoftware DevelopmentBacklog
Git

Project and code management together.

Команды журнала фиксаций Git


Изменение предыдущей фиксации и сообщений

$ git commit --amend

Добавьте параметр --amend, чтобы перезаписать последнюю фиксацию ветки, над которой вы работаете.

Если в индексе нет файлов, вы можете повторно зафиксировать предыдущую фиксацию, добавив параметр --amend, и вам будет предложено отредактировать существующее сообщение фиксации.

См.:

$ git rebase -i <commit>

Добавьте хеш фиксации, в результате будет отображен список всех фиксаций до последней фиксации. Найдите фиксацию, которую необходимо изменить, и измените эту строку с pick (Выбрать) на edit (Редактировать), затем сохраните и закройте.

Затем добавьте параметр --amend для фиксации. Отобразится экран добавления сообщения. Измените сообщение.

$ git commit --amend

Наконец, добавьте параметр --continue для запуска перебазирования.

$ git rebase --continue

См.:

$ 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 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 log --grep "<pattern>"

Отображает фиксации с текстом, указанным в <pattern>.

Subscribe to our newsletter

Learn with Nulab to bring your best ideas to life