Git - Каков следующий шаг после сброса на конкретный коммит?
Я новичок в Git и застрял в ситуации, совершать или нет. Так что это может быть основным вопросом. Я пытался найти много по этому поводу, но не нашел ответа, относящегося к моей проблеме. Так что спрашиваю здесь.
У меня есть 15 коммитов для моей ветки. Теперь я сбросил свой первый коммит из-за одной проблемы. Затем я внес изменения, которые охватили изменения всех коммитов.
Теперь мой вопрос: могу ли я зафиксировать свои изменения напрямую? будет ли он сохранен поверх других коммитов? что будет с другими коммитами и их историей. Нужно ли удалять историю или нет? Или я просто должен зафиксировать изменения, и моя ветка будет готова к слиянию? Или есть какой-то дополнительный шаг, пока я не отмечу свой последний коммит?
2 ответа
Когда вы сбрасываете ветку, он перемещает указатель ветви без изменения ваших коммитов. Вы идете из этого:
first commit branch name
| |
* -- * -- * -- * -- * ... * -- * -- *
к этому:
branch name
first commit
|
* -- * -- * -- * -- * -- * -- * -- * ...
Все остальные ваши коммиты все еще там, но вы больше не основаны на них. Вы можете зафиксировать свои изменения. Он создаст новый отдельный коммит, основанный на вашем первом коммите. Как это:
first commit
|
* -- * -- * -- * -- * -- * -- * -- * ...
\ branch name
\|
*
Судя по вашим комментариям в ответе mkasberg, похоже, что коммиты, с которых вы сбросили настройки, уже переданы в удаленный репозиторий. Если это так, то возврат к более ранней фиксации не был правильным способом решения вашей проблемы.
Я бы порекомендовал сохранить копию всех ваших файлов в их текущем состоянии в папку за пределами вашей рабочей копии. Затем сбросьте свою рабочую копию, чтобы все эти 15 коммитов были включены снова. Затем перезапишите вашу рабочую копию резервной копией, которую вы сделали, и зафиксируйте ее.