Git: изменить существующее сообщение фиксации

Ошибки распространены, мы все их совершаем. Вот почему на карандаши наносят ластики. И это ничем не отличается от таких инструментов, как Git. Хотя некоторые изменения может быть трудно отменить, обычно есть способ.

А что, если вы хотите изменить существующее сообщение о фиксации? К счастью, в Git это легко сделать, но метод может немного измениться в зависимости от некоторых факторов.

Исправление последней фиксации, еще не отправленной на удаленный компьютер

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

$ git commit --amend

Выполнение этой команды откроет редактор, в котором вы сможете изменить последний зафиксировать сообщение. Как только вы закончите и сохраните/закроете редактор, сообщение о фиксации будет изменено.

Лично я предпочитаю делать большинство действий в командной строке, что можно сделать, добавив аргумент и сообщение к приведенной выше команде:

$ git commit --amend -m "Added a new file"

Если вы сделаете это таким образом, редактор не откроется, а просто немедленно изменится сообщение о фиксации.

Исправить последнюю фиксацию, отправленную на удаленный компьютер

Это еще один распространенный случай, и его немного сложнее исправить не только потому, что нам нужно изменить наш собственный репозиторий, но нам также нужно изменить удаленный репозиторий, который может быть дальше, чем ваша локальная ветка.

Первым шагом является изменение последнего коммита, как мы это делали в предыдущем разделе:

$ git commit --amend -m "Added a new file"

Затем вам нужно отправить эти изменения в удаленный репозиторий. Однако это необходимо сделать с помощью --force флаг.

$ git push <remote> <branch> --force

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

Имейте в виду, что, форсируя толчок, вы также терять любые коммиты в локальной ветке, которых еще нет в вашей локальной ветке. Действовать с осторожностью!

Ознакомьтесь с нашим практическим руководством по изучению Git с рекомендациями, принятыми в отрасли стандартами и прилагаемой памяткой. Перестаньте гуглить команды Git и на самом деле изучить это!

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

Используйте интерактивную перебазировку

Другой вариант, более гибкий, чем описанные ранее решения, — использовать интерактивное перебазирование. Это позволит вам проверить N последних коммитов и внести в них изменения, включая выборку, сжатие и т. д.

Чтобы начать перебазирование, вы можете использовать следующую команду:

$ git rebase -i HEAD~n

Здесь, n — это количество коммитов, которые вы хотите проверить и отредактировать. Затем вы увидите список коммитов, похожий на этот:

$ $ git rebase -i HEAD~4
pick 788ebf0 Oops, I forgot to add a new file
pick ced1329 Fixed a super critical bug
pick 5e9cdc5 Added a new file



















Как вы можете видеть, перечислены все последние N коммитов, и вы можете изменить их сообщения по мере необходимости.

Отметка времени:

Больше от Стекабьюс