Używam Git i popełniłem kilka plików używając
git commit -a
Później odkryłem, że plik został omyłkowo dodany do commitu.
Jak mogę usunąć plik z ostatniego commitu?
ATTENTION! Jeśli chcesz tylko usunąć plik z poprzedniego commitu, i zachować go na dysku, przeczytaj juzzlin's answer powyżej.
Jeśli jest to twój ostatni commit i chcesz całkowicie usunąć plik z twojego lokalnego i zdalnego repozytorium, możesz to zrobić:
git rm <file>
.git commit --amend
.Flaga amend mówi gitowi, aby popełnił ponownie, ale "scalił" (nie w sensie łączenia dwóch gałęzi) ten commit z ostatnim commitem.
Jak stwierdzono w komentarzach, użycie git rm
tutaj jest jak użycie samej komendy rm
!
Jeśli nie wprowadziłeś zmian na serwerze, możesz użyć
git reset --soft HEAD~1
Spowoduje to zresetowanie wszystkich zmian i powrót do jednego commitu wstecz
Jeśli pchnąłeś swoje zmiany, wykonaj kroki, na które odpowiedział @CharlesB
Usunięcie pliku za pomocą rm spowoduje jego skasowanie!
Zawsze dodajesz do commitu w git, a nie usuwasz, więc w tym przypadku przywróć plik do stanu, w którym znajdował się przed pierwszym commitem (może to być akcja delete 'rm', jeśli plik jest nowy), a następnie ponownie skompiluj, a plik zostanie usunięty.
Aby przywrócić plik do jakiegoś poprzedniego stanu:
git checkout <commit_id> <path_to_file>
lub aby przywrócić go do stanu w zdalnym HEAD:
git checkout origin/master <path_to_file>
następnie zmień commit i powinno się okazać, że plik zniknął z listy (a nie został usunięty z twojego dysku!)