В git коммиты - это просто объекты.Когда вы git commit --amend
, вы просто создаете новый коммит с тем же родителем.Изначально это выглядит так:
{HEAD}
{master}
---[A]---[B]---[C]
Теперь вы вносите изменения C
, создавая новый коммит D
:
{HEAD}
{master}
---[A]---[B]---[D]
\
\
[C]
Старый C
все еще существует на данный момент,Однако на него больше не ссылается ни одна ветвь, поэтому в следующий раз, когда произойдет сборка мусора, она будет сметена.