Я хотел бы повторно использовать объект коммита, который находится в моей базе данных git, который в настоящее время не присоединен ни к одной ветви.
Сценарий таков: давайте вызовем мой последний коммит A
.С A
я начал вносить изменения в свое рабочее дерево, но вскоре понял, что в A
есть ошибка, которую мне нужно было исправить.Я исправил ошибку и попытался изменить свой коммит, не добавляя других изменений, внесенных в рабочее дерево со времени коммита A
.Я сделал это к git reset --soft HEAD^
, а затем поставил только то, что было необходимо для исправления ошибки.Затем, вместо того, чтобы делать git commit -c ORIG_HEAD
, я случайно сделал git commit -a -c ORIG_HEAD
(обратите внимание на -a
), так что я закончил тем, что добавил все другие изменения, которые я хотел оставить неизменными.Измененный коммит можно назвать A'
, чтобы отличить его от исходного коммита.
У меня есть сумма SHA1 для исходного объекта коммита для A
, и все BLOB-объекты все еще должны присутствовать, так как это было недавно иЯ ничего не помечал для истечения срока действия.Я подумываю о том, чтобы просто отредактировать .git/refs/heads/branch_name
, чтобы он указывал на A
, затем расположить вещи в моем рабочем дереве так, как я хочу, и повторно внести изменения в коммит.
Будет ли это лучшим вариантом действий?по этому сценарию?Или есть лучший способ сделать это?