Как git вернуть фиксацию с использованием SHA
Как я могу вернуть фиксацию с помощью GIVEN SHA? Я просто хочу удалить изменения с заданным SHA? Я хочу сохранить все коммиты, сделанные до и после получения SHA. Я просто хочу удалить изменения указанного SHA.
Я прочитал Вернуть к фиксации с помощью SHA-хэша в Git?, я понимаю, что reset все коммиты, сделанные ПОСЛЕ SHA, я хочу вернуться.
Я не хочу этого делать.
Ответы
Ответ 1
Вы можете использовать git revert <commit hash>
, чтобы попытаться вернуть изменения, сделанные фиксацией. Это не удалит фиксацию из истории, просто внесите изменения, чтобы отменить ее как новую фиксацию. Другими словами, у вас будет первая фиксация в истории, а также дополнительная фиксация на голове вашей ветки, которая является эффективной инверсией первоначальной фиксации.
Если вы еще не поделились своими изменениями с кем-либо еще, тогда можно удалить оригинальную оскорбительную фиксацию из истории, используя git rebase
. Есть подробности в этом сообщении SO.
Ответ 2
git revert <commit>
попытается вернуть одно коммит.
Он не изменит никаких других коммитов. Вы можете быть смущены git reset
, что делает что-то совершенно другое.
За дополнительной информацией: https://www.kernel.org/pub/software/scm/git/docs/git-revert.html