Mój projekt ma plik foo
, którego używam i sprawdzam z git
. Właśnie dokonałem refaktoryzacji, więc już nie potrzebuję pliku. Jeśli wykonam git rm foo
, czy plik będzie nadal istnieć w starszych zatwierdzeniach? Czy będę mógł sprawdzić starszy commit i pracować z plikiem?Czy git rm usuwa całą historię pliku?
Odpowiedz
Nie, git rm
(plus zatwierdzenie) zapisuje nowe drzewo, które odzwierciedla, że plik już nie istnieje. Cała historia pliku, w tym tworzenie, modyfikacje i ewentualne usunięcie, jest obecna w historii.
Nie, git rm
usunie tylko plik z katalogu roboczego i doda to usunięcie do indeksu. Tak więc dotyczy to tylko przyszłych zatwierdzeń. Wszystkie poprzednie zatwierdzenia pozostają takie same, a historia będzie się wyświetlać po usunięciu pliku z repozytorium.
Ogólnie wszystkie zatwierdzenia, które wcześniej wykonałeś, są trwałe, więc nigdy nie powinieneś się martwić o utratę zatwierdzeń, gdy znajdą się gdzieś w historii. Oczywiście, są pewne rzeczy, które mogą usunąć lub zmienić wcześniejsze zatwierdzenia (takie jak ponowne przesyłanie), ale w przypadku większości rzeczy, które robisz, jesteś całkiem bezpieczny.
Będziesz zdolny do kasy każdą starą wersję przy użyciu znanych popełnić identyfikator ze wszystkimi stanu należą do niego, w tym pliki, które zostały usunięte teraz. Zobacz np. git branch < nazwa oddziału > < Punkt początkowy > gdzie punktem początkowym jest identyfikator zatwierdzenia. Nie powinieneś nawet śledzić, że punkt startowy należy do bieżącego oddziału; Identyfikatory commit są niepowtarzalne, więc mogą znajdować się w dowolnej gałęzi znanej w bieżącym repozytorium.
Możesz sprawdzić poprzednią historię pliku, używając polecenia log; ale nie działa w żadnej składni - dla 1.7.7 wydam "git log - oldpath" zamiast prostej "git log oldpath", ponieważ w przeciwnym razie nie będzie można odróżnić ścieżki od wersji. W przypadku niektórych innych poleceń jako "winę" nawet to nie wystarczy - należy wypróbować starą wersję, aby ją uruchomić.
- 1. Jak usunąć całą historię zatwierdzania w github?
- 2. Git usuń historię zatwierdzenia
- 3. Czy można połączyć historię dwóch repozytoriów Git?
- 4. Wyświetl historię pliku w Magit?
- 5. W jaki sposób skrypt poprzedzony #!/Bin/rm sam się usuwa?
- 6. Git: Cofnij zmiany lokalne; git dodaj. + git rm?
- 7. Zobacz historię git dla folderu
- 8. "odpowiednik" rm "+" aktualizacja svn "w Git?
- 9. Niemożliwe git rm ze specjalnymi znakami
- 10. Git-svn - import pełną historię
- 11. Pobierz historię/dziennik pliku (potencjalnie usuniętego) w Git
- 12. Czy debugger Perla może zapisać historię ReadLine w pliku?
- 13. git zobacz całą różnicę scalania
- 14. event.preventDefault() z Angularjs i Uirouter usuwa historię przeglądarek
- 15. Czy git rebase może całkowicie usunąć zdalną historię?
- 16. Jak usunąć wcześniej dodane poddrzewo git i jego historię
- 17. Jak wyeksportować historię wersji gdoc do git?
- 18. RM -rf odpowiednik dla Windows?
- 19. Napraw historię git z podwójnymi zatwierdzeniami
- 20. Jak wyświetlić historię logów git dla podkatalogu repozytorium git?
- 21. Linux rm -rf * usuwać zamówienia?
- 22. Cygwin: różnica między poleceniem "\ rm -fr" a "rm -fr"?
- 23. Wyświetl historię Git w Androidzie Studio
- 24. Reorder git commit historię według daty
- 25. Czy usunięcie gałęzi w git usuwa ją z historii?
- 26. Jak cofnąć ditmę git rm -rf bez pierwszego zatwierdzenia?
- 27. Git - usuwa zatwierdzenia z pustym zestawem zmian za pomocą gałęzi filtru
- 28. ładnie wyświetla plik zmień historię w dzienniku git
- 29. Dlaczego git nadal usuwa mój folder?
- 30. Dlaczego skrytka git usuwa mój folder node_modules?
Czy pierwsze słowo nie powinno brzmieć tak? Jak poprosił, może uzyskać pliki z poprzednich zatwierdzeń? I chcesz powiedzieć tak! Dobrze? – PHcoDer