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)
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)
Odpowiedzi:
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 agit 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.