Я перебросил ветку с пульта, чтобы попытаться очистить несколько коммитов, которые мне не нужны, и собирался выбрать нужные мне.Конечно, я написал SHA неправильно ...
Вот как я их нашел (в основном это более простой интерфейс / взаимодействие с ответами здесь):
Сначала создайте список свободных коммитовв вашем журнале.Сделайте это как можно скорее и перестаньте работать, так как они могут быть сброшены сборщиком мусора.
git fsck --full --no-reflogs --unreachable --lost-found > lost
Это создает файл lost
со всеми коммитами, на которые вам нужно будет посмотреть.Чтобы упростить нашу жизнь, давайте вырезать из нее только SHA:
cat lost | cut -d\ -f3 > commits
Теперь у вас есть файл commits
со всеми коммитами, которые вам нужно посмотреть.
Предполагается, что вы используете Bash, последний шаг:
for c in `cat commits`; do git show $c; read; done
Это покажет вам diff и информацию о фиксации для каждого из них.И ждем, пока вы нажмете Введите .Теперь запишите все те, которые вы хотите, и затем выберите их. После того, как вы закончите, просто нажмите Ctrl-C.