Удаление истории коммитов Git (как локально, так и удаленно)
Хотя большинство из нас знает, что мы никогда не должны передавать какую-либо конфиденциальную информацию в репозиторий исходного кода (будь то Git, Subversion или что-то еще), бывают случаи, когда это происходит.
Я думаю, что в большинстве случаев это происходит всякий раз, когда мы работаем над кодом, а затем переключаемся между IDE и терминалом и фиксируем код, чтобы убедиться, что мы не теряем никаких изменений.
Это происходит достаточно долго, а затем мы в конечном итоге фиксируем потребительский ключ и потребительский секрет, или имя пользователя и пароль, или что-то похожее на репозиторий.
К счастью, мы можем удалить коммиты, чтобы вернуть наш код, но большинство систем управления исходным кодом в конечном итоге сохраняют историю всего (что хорошо). Но что, если нам нужно удалить историю коммитов Git как в наших локальных, так и в удаленных репозиториях?
Удаление истории коммитов Git
В этом примере я предполагаю, что вы работаете с Git и работаете с командной строкой (хотя я полагаю, что большинство графических интерфейсов допускают такую возможность).
Затем я предполагаю, что фиксация, которую вы хотите удалить из своей истории, является самой последней фиксацией, и вы просто хотите вернуться на один шаг назад.
Чтобы полностью удалить историю коммитов git, вам нужно сделать всего две вещи:
- перебазировать на предыдущую фиксацию,
- подтолкнуть ветку к удаленному.
Для этого проверьте два средних шага здесь :
Дополнительные шаги до и после основных коммитов позволяют получить наглядный список коммитов на тот случай, если вы захотите выбрать отдельный коммит, к которому хотите откатиться.
И вы можете запустить команду как до, так и после двух других команд (как видно из приведенного выше описания), чтобы убедиться, что список коммитов отображается в истории проекта так, как вы хотите.