Как 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