Изменение коммитов в Git

от автора

Это пост для людей, начинающих работу с Git, я расскажу как менять коммиты.
Все, что здесь написано по частям можно найти в многочисленных простынях о Git на Хабре. Но я подумал, что неплохо было бы иметь отдельный предельно понятный топик, который бы гуглился по запросу «git изменение коммитов».

Изменение последнего коммита

Если вы что-либо недоглядели в последнем коммите, то отредактировать его не составит никакого труда. Все, что нужно это добавить изменения обычным образом:

git add . 

Затем закоммитить изменения с параметром —amend (amend /əˈmɛnd/ — вносить поправки, исправлять, улучшать):

git commit --amend 

Изменение названия последнего коммита

То же самое, с той лишь разницей что нет необходимости добавлять файлы в коммит. Просто укажите новое название:

git commit --amend -m "Новое название" 

Изменение НЕ последнего коммита

Тут чуть посложнее, сделайте для начала два коммита, в моем примере они будут называться С1 и С2:
image

Для начала выполняем:

git rebase --interactive  # короткая версия: git rebase -i 

Откроется реактор, в котором вы можете указать что хотите сделать:
image

Как видите, git rebase -i может послужить когда нужно

  • r reword переименовать коммит
  • e edit изменить коммит
  • s squash склеить два или больше коммитов (squash /skwɒʃ/ — втиснуть, сжимать, тыква 🙂 )

Рядом с коммитом С1 вместо pick впишите e для редактирования коммита или r для переименования. Сохранив файл, вы увидите подсказку от Git:
image

Размеремся подробнее что прозошло. Мы переместились на коммит С1, «спрыгнув» с ветки master. Это можно проверить, запустив:

git branch 

В ответ получим:

* (no branch, rebasing master)   master 

Дальше, как первой части поста где мы меняли последний коммит, делаем изменения и добавляем их:

git add . 

и коммитим с параметром --amend:

git commit --amend 

После успешного коммита, следуя подсказке (чуть выше на скриншоте), выполняем:

git rebase --continue 

Тем самым мы возвратимся на ветку master с измененным коммитом, что и требовалось.

Пост получился короткий и, надеюсь, ясный. Commit early, commit often.

ссылка на оригинал статьи http://habrahabr.ru/post/201922/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *