Git: удалить одну удаленную ревизию - PullRequest
6 голосов
/ 14 февраля 2010

Я начал переключать свои частные проекты subversion на git (Github) и публиковать код для общественности. Поэтому я новичок в стиле git.

К сожалению, есть пересмотр проекта, который содержит конфиденциальные данные. Редакция не помечена, я просто знаю ее хеш-значение.

Есть ли способ полностью удалить эту конкретную ревизию из удаленного репозитория git? Это сольный проект, поэтому никто не пострадает от операции.

1 Ответ

3 голосов
/ 14 февраля 2010

Пост, расположенный здесь , решил мою проблему.

Если фиксация, которую вы хотите исправить, не самая последняя:

  1. git rebase --interactive $parent_of_flawed_commit

    Если вы хотите исправить несколько некорректных коммитов, передайте родителю самого старого из них.

  2. Подойдет редактор со списком всех коммитов, начиная с того, который вы дали.

    1. Измените pick на edit перед любыми коммитами, которые вы хотите исправить.
    2. После сохранения git воспроизведет перечисленные коммиты.
  3. Git будет возвращаться в оболочку для каждого коммита, который вы сказали отредактировать:

    1. Измените коммит любым удобным вам способом.
    2. git commit --amend
    3. git rebase --continue

Большая часть этой последовательности будет объяснена вам при выводе различных команд по мере выполнения. Это очень просто, вам не нужно запоминать его - просто помните, что git rebase --interactive позволяет вам исправлять коммиты, независимо от того, как давно они были.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...