1

У меня есть хранилище.

Как я могу удалить свои старые коммиты через терминал? Мой ключ SSH загружен.

(Я использую страницы GitHub, поэтому отслеживание версий не важно, не хочу тратить впустую хранилище Github)

2 ответа2

4

У вас есть действительно хороший ответ для этого здесь: https://stackoverflow.com/questions/448919/how-can-i-remove-a-commit-on-github

И я цитирую

Примечание: пожалуйста, смотрите альтернативу git rebase -i в комментариях ниже -

git reset --soft HEAD^

Сначала удалите коммит из вашего локального репозитория. Вы можете сделать это, используя git rebase -i . Например, если это ваш последний коммит, вы можете выполнить git rebase -i HEAD~2 и удалить вторую строку в появившемся окне редактора.

Затем принудительно нажмите на GitHub, используя git push origin +master .

См. Git Magic Глава 5: Уроки истории - и затем некоторые для получения дополнительной информации (например, если вы хотите удалить старые коммиты).

О, и если ваше рабочее дерево грязное, вы должны сначала сделать git stash , а затем git stash apply .

Надеюсь, это поможет вам :)

==== РЕДАКТИРОВАТЬ ====

На самом деле я просто перечитал пост, на который я ссылался, и, в частности, комментарий "Слово предостережения 2" https://stackoverflow.com/questions/448919/how-can-i-remove-a-commit-on-github

Из этого я узнал, что git, кажется, создает новый коммит и перемещает указатель на него, а не удаляет его при использовании принудительного нажатия. То есть, если у кого-то уже есть SHA1 вашего коммита, он все равно может получить к нему доступ. Поэтому, принимая это во внимание, я должен рекомендовать вам сделать так, как предложил Томаш Клим.

2
  1. Создать новый репозиторий.
  2. Скопируйте все файлы к нему.
  3. Уничтожить старый репозиторий.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .