На текущем проекте все комиты должны быть подписаны GPG ключом. Делается это флагом -S
git commit -S -m "commit message". Но так как я ленивая жопа, я таки не сделал себе git-алиас для этого и частенько по запарке комитаю без подписи. А спустя несколько комитов при попытке запушить ветку, получаю ошибку, что какой то из комитов не подписан.
Каждый раз забываю как это пофиксить.
Для начала посмотрим все комиты с информацией о подписи
git log --show-signature
Посчитаем какой комит самый первый не подписан и сделаем ребейз на состояние ветки перед ним
git rebase -i HEAD~N
ставим edit на все комиты начиная с того, который не подписан, переходим в ребейз и выполняем команды
git commit -S --amend --no-edit
git rebase --continue
Готово, никто не узнает что
Еще больший геморрой, когда HEAD~N выпадает на мерж-комит и ребейз не показывает этот комит как отдельный и выдает всю историю комитов этого мержа. Такой кейс я могу решить только через
git cherry-pick -S <commit-hash> для каждого коммита в новую ветку (старую уже не спасти)Если вы крутой гит-хакер, жду ваши советы, git-alias или клевые команды, упрощающие жизнь в коментах.
