Jak mogę usunąć stare zatwierdzenia w Github przez terminal?


1

Mam repozytorium.

Jak mogę usunąć moje stare zatwierdzenia przez terminal? Mój klucz SSH został przesłany.

(Używam stron github, dlatego śledzenie wersji nie jest ważne, nie chcę marnować pamięci Githuba)


Cześć, nie możesz usunąć starych zatwierdzeń w publicznym repozytorium. Tworzysz prywatne repozytorium lub zakładasz nowe konto.
KC Chai

Odpowiedzi:


4

Tutaj masz naprawdę dobrą odpowiedź: https://stackoverflow.com/questions/448919/how-can--remove-a-commit-on-gitub

I cytuję

Uwaga: zapoznaj się z alternatywą dla git rebase -i w komentarzach poniżej-

git reset --soft HEAD^

Najpierw usuń zatwierdzenie w lokalnym repozytorium. Możesz to zrobić   za pomocą git rebase -i. Na przykład, jeśli jest to Twoje ostatnie zatwierdzenie, możesz to zrobić git rebase -i HEAD~2 i usuń drugi wiersz w edytorze   wyskakujące okno.

Następnie zmuś push do GitHub przy użyciu git push origin +master.

Widzieć Git Magic Rozdział 5: Lekcje historii - A potem niektóre więcej   informacje (np. jeśli chcesz usunąć starsze zatwierdzenia).

Aha, i jeśli twoje drzewo robocze jest brudne, musisz zrobić git stash najpierw, a potem a git stash apply po.

Mam nadzieję, że to ci pomoże :)

==== EDYCJA ====

Właściwie po prostu ponownie przeczytałem wpis, do którego linkowałem, a zwłaszcza komentarz "word of Caution 2" https://stackoverflow.com/questions/448919/how-can--remove-a-commit-on-gitub

Od tego dowiedziałem się, że git wydaje się tworzyć nowe zatwierdzenie i przesuwanie wskaźnika do niego, zamiast usuwania go przy użyciu siły push. Oznacza to, że jeśli ktoś już posiada SHA1 swojego zatwierdzenia, może uzyskać do niego dostęp. Biorąc to pod uwagę, muszę zalecić, abyś robił tak, jak sugerował Tomasz Klim.


2
  1. Utwórz nowe repozytorium.
  2. Skopiuj do niego wszystkie pliki.
  3. Zniszcz stare repozytorium.
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.