Я начал переключать свои частные проекты подверсии на мерзавца (GitHub) и опубликовываю код. Поэтому я - новичок мерзавца.
К сожалению, существует пересмотр проекта, который содержит конфиденциальные данные. Пересмотр не отмечен, я просто знаю его значение хэш-функции.
Существует ли способ полностью стереть тот конкретный пересмотр из удаленного репозитория мерзавца? Это - сольный проект, таким образом, никто не пострадает от операции.
Сообщение, расположенное здесь , решило мою проблему.
Если коммит, который вы хотите исправить, не самый последний:
git rebase --interactive $ parent_of_flawed_commit
Если вы хотите исправить несколько ошибочных коммитов, передайте родительский элемент самого старого из них.
Появится редактор со списком всех коммитов, начиная с того, что вы дали.
- Измените
pick
наedit
перед любыми коммитами, которые вы хотите исправить.- После сохранения git воспроизведет перечисленные коммиты.
Git будет возвращаться в оболочку для каждой фиксации, которую вы сказали, что хотите отредактировать:
- Измените фиксацию любым способом.
git commit --amend
git rebase --continue
Большая часть этой последовательности будет объяснена вам по мере выполнения различных команд. Это очень просто, вам не нужно запоминать это - просто помните, что
git rebase --interactive
позволяет исправлять коммиты независимо от того, как давно они были.