Это пост для тех, кто начинает работу с Git. Все, что здесь написано по частям можно найти в многочисленных простынях о Git на Хабре. Но я подумал, что неплохо было бы иметь отдельный предельно понятный топик, который бы гуглился по запросу «git изменение коммитов».
Если вы что-либо недоглядели в последнем коммите, то отредактировать его не составит никакого труда. Все, что нужно это добавить изменения обычным образом:
Затем закоммитить изменения с параметром --amend (amend /əˈmɛnd/ — вносить поправки, исправлять, улучшать):
То же самое, с той лишь разницей что нет необходимости добавлять файлы в коммит. Просто укажите новое название:
Тут чуть посложнее, сделайте для начала два коммита, в моем примере они будут называться

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

Рядом с коммитом

В ответ получим:
Дальше, как первой части поста где мы меняли последний коммит, делаем изменения и добавляем их:
и коммитим с параметром
После успешного коммита, следуя подсказке (чуть выше на скриншоте), выполняем:
Тем самым мы возвратимся на ветку
Изменение последнего коммита
Если вы что-либо недоглядели в последнем коммите, то отредактировать его не составит никакого труда. Все, что нужно это добавить изменения обычным образом:
git add .
Затем закоммитить изменения с параметром --amend (amend /əˈmɛnd/ — вносить поправки, исправлять, улучшать):
git commit --amend
Изменение названия последнего коммита
То же самое, с той лишь разницей что нет необходимости добавлять файлы в коммит. Просто укажите новое название:
git commit --amend -m "Новое название"
Изменение НЕ последнего коммита
Тут чуть посложнее, сделайте для начала два коммита, в моем примере они будут называться
С1 и С2:
Для начала выполняем:
git rebase --interactive
# короткая версия: git rebase -i
Откроется реактор, в котором вы можете указать что хотите сделать:

Как видите, git rebase -i может послужить когда нужно
r rewordпереименовать коммитe editизменить коммитs squashсклеить два или больше коммитов (squash /skwɒʃ/ — втиснуть, сжимать, тыква :) )
Рядом с коммитом
С1 вместо pick впишите e для редактирования коммита или r для переименования. Сохранив файл, вы увидите подсказку от Git:
Размеремся подробнее что прозошло. Мы переместились на коммит С1, «спрыгнув» с ветки master. Это можно проверить, запустив:
git branch
В ответ получим:
* (no branch, rebasing master)
master
Дальше, как первой части поста где мы меняли последний коммит, делаем изменения и добавляем их:
git add .
и коммитим с параметром
--amend:git commit --amend
После успешного коммита, следуя подсказке (чуть выше на скриншоте), выполняем:
git rebase --continue
Тем самым мы возвратимся на ветку
master с измененным коммитом, что и требовалось.Пост получился короткий и, надеюсь, ясный. Commit early, commit often.
This entry passed through the Full-Text RSS service — if this is your content and you're reading it on someone else's site, please read the FAQ at fivefilters.org/content-only/faq.php#publishers. Five Filters recommends:
- Massacres That Matter - Part 1 - 'Responsibility To Protect' In Egypt, Libya And Syria
- Massacres That Matter - Part 2 - The Media Response On Egypt, Libya And Syria
- National demonstration: No attack on Syria - Saturday 31 August, 12 noon, Temple Place, London, UK
Комментариев нет:
Отправить комментарий