У меня есть хранилище.
Как я могу удалить свои старые коммиты через терминал? Мой ключ SSH загружен.
(Я использую страницы GitHub, поэтому отслеживание версий не важно, не хочу тратить впустую хранилище Github)
У меня есть хранилище.
Как я могу удалить свои старые коммиты через терминал? Мой ключ SSH загружен.
(Я использую страницы GitHub, поэтому отслеживание версий не важно, не хочу тратить впустую хранилище Github)
У вас есть действительно хороший ответ для этого здесь: 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 вашего коммита, он все равно может получить к нему доступ. Поэтому, принимая это во внимание, я должен рекомендовать вам сделать так, как предложил Томаш Клим.