Как в Git изменить последний коммит ?

В своем проекте Вы сделали изменения и зафиксировали их при помощи команды [cci]$ git commit -m»»[/cci], и как обычно это бывает, подтвердив действие нажатием клавиши Enter, Вы вдруг поняли, что забыли добавить пару строчек кода, в какой-либо файл, или сделали неверный комментарий к коммиту, или забыли убрать из кода [cci]var_dump($foo)[/cci] – отладочный тестовый вывод какой-либо переменной, или вам нужно добавить пару строк кода, логически подходящие именно под этот последний коммит, да и может возникнуть много других причин, по которым вы можете захотеть поменять содержимое кода или комментарий последнего коммита. И конечно же в самой популярной системе контроля версий Git предусмотрен механизм для такой незапланированной правки с помощью команды [cci]—amend[/cci].

ВНИМАНИЕ: Никогда не вносите изменения в последний коммит при помощи команды [cci]—amend[/cci], если данный коммит вы уже успели запушить на удаленный центральный репозиторий. В таких случаях вам нужно внести изменения в код с помощью нового коммита.

Правка кода в последнем коммите (ключ —amend).

На иллюстрации ниже показана история коммитов в текущем репозитории при помощи команды:

[cce lang=’bash’]
$ git log
[/cce]

В данном примере при создании последнего коммита была допущена неточность в комментарии к коммиту, и еще требуется внести небольшое изменение в код проекта. Для начала сделаем небольшие правки в файл first.php и воспользуемся для этого редактором nano.

Теперь, мы можем увидеть, что в нашем локальном репозитории, есть измененнные файлы, чье состояние пока что незафиксировано в системе контроля версий Git. Сделаем это при помощи команды:

[cce lang=’bash’]
$ git status
[/cce]

Данные изменения нужно добавить для фиксации в коммите, при помощи:

[cce lang=’bash’]
$ git add first.php
[/cce]

В иллюстрации выше видно, что сделанные изменения подготовлены к фиксации в коммите, но нам необходимо сделать это не в новом коммите, а добавить к последнему старому, и мы сделаем это с помощью ключа —amend (в переводе с англ.: изменять, вносить правки).

[cce lang=’bash’]
$ git commit —amend -m»It’s commit 3″
[/cce]

В результате применения команды выше, НЕ СОЗДАЕТСЯ новый коммит, а вносятся изменения в последний уже существующий. Убедиться в этом можно применив команду [cci]$ git log[/cci]

Как видно на изображении выше, в результате применения команды [cci]$ git commit —amend[/cci] изменилось содержимое последнего коммита, о чем свидетельствует изменившийся ХЕШ-коммита, а также изменился последний комментарий коммита. Но без изменений остались дата и время коммита.

Как изменить только комментарий последнего коммита?

Следует стремится к тому, чтобы каждый коммит был логически законченным, поэтому при правильном процессе написания кода такая задача, как внесение правок в код последнего коммита, встречаться должна очень-очень редко. Но вот с чем точно придется столкнуться, так это изменение только комментария к последнему коммиту. Как правило это происходит по причине допущенной опечатки или желания немного по другому описать сделанные изменения в последнем коммите. В этом нам поможет тот-же ключ —amend.

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

[cce lang=’bash’]
$ git commit —amend -m»Change comment in commit 3″
[/cce]

На изображении выше показан результат работы команды, а также вывод полученный при [cci]
$ git log[/cci] для просмотра имеющихся коммитов. Так видно, что изменилось описание
и ХЕШ-сумма последнего коммита, а время и дата остались прежними.

Таким образом для внесения изменений в код или просто только правки комментария используйте ключ —amend. Данный ключ используется для правок в последнем коммите, и настоятельно не рекомендуется к использованию, если этот комит уже запушен в центральный репозиторий.

54 thoughts to “Как в Git изменить последний коммит ?”

  1. Уведомление: fwervs.gumroad.com
  2. Уведомление: https://trosorin.mystrikingly.com/
  3. Уведомление: buy cialis online best price
  4. Уведомление: site373681070.fo.team
  5. Уведомление: buy tadalafil pills
  6. Уведомление: buy viagra 25mg
  7. Уведомление: no 1 canadian pharcharmy online
  8. Уведомление: kertubs.mystrikingly.com
  9. Уведомление: buy viagra usa
  10. Уведомление: online drug store
  11. Уведомление: deiun.flazio.com
  12. Уведомление: list of reputable canadian pharmacies
  13. Уведомление: drugstore online
  14. Уведомление: https://kerbnt.flazio.com/
  15. Уведомление: canadian pharmaceuticals
  16. Уведомление: http://ime.nu/cialisonlinei.com
  17. Уведомление: kerntyast.flazio.com
  18. Уведомление: https://gewrt.usluga.me/
  19. Уведомление: canadian-pharmacy.webflow.io
  20. Уведомление: canadian pharmacy cialis
  21. Уведомление: Canadian Pharmacies Shipping to USA
  22. Уведомление: https://site561571227.fo.team/
  23. Уведомление: site102906154.fo.team
  24. Уведомление: canadian pharmacys
  25. Уведомление: https://kawsear.fwscheckout.com/
  26. Уведомление: canada drug pharmacy
  27. Уведомление: canadian government approved pharmacies
  28. Уведомление: lwerts.livejournal.com276.html
  29. Уведомление: https://avuiom.sellfy.store/
  30. Уведомление: https://pharmacies.bigcartel.com/
  31. Уведомление: https://kwersd.mystrikingly.com/
  32. Уведомление: site592154748.fo.team
  33. Уведомление: aonubs.website2.me
  34. Уведомление: canadian drug
  35. Уведомление: canadian pharmacies that ship to us

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

Ваш адрес email не будет опубликован.