Mam duże repozytorium git ponad 3 lata, chcę usunąć historię zmian, które były więcej niż rok temu. czy to możliwe? Czy można używać git rebase, ale w jaki sposób?Git usuń historię zatwierdzenia
Odpowiedz
Usunięcie historii prawdopodobnie nie rozwiąże problemu. Istnieje szansa, że w pewnym momencie duży plik został zatwierdzony do repozytorium, a następnie usunięty.
Chciałbym rzucić okiem na Find files in git repo over x megabytes, that don't exist in HEAD.
Zbadaj czarną magię o nazwie git replace
w this article from the Pro Git book, która wykorzystuje Twoje dokładne okoliczności jako jej przykład. Zasadniczo, jeśli znajdziesz punkt w historii, który chcesz działać jako nowy root, możesz go zastąpić zatwierdzeniem, które nie ma rodziców, tak jakby zostało stworzone z powietrza. Możesz nawet przechowywać oryginalne drzewo na jednym komputerze, co ułatwia przywrócenie historii, jeśli będziesz jej potrzebować ponownie.
Należy zauważyć, że problemem z git rebase
(i git replace
, jeśli o to chodzi) jest to, że chcesz przepisać całe drzewo, w tym gałęzie, aby wszystkie wskazywały na różne zatwierdzenia. Ma to również wpływ na to, że inni członkowie twojego zespołu mogą się scalić ze zmianami, ponieważ wszyscy rodzice mają inne SHA niż wcześniej.
Z tego, co przeczytałem , '' git replace'' nic nie poradzi sobie z problemami zmieniającymi się hashe –
@ Jon To masz rację Restrukturyzowana moja odpowiedź, aby to wyjaśnić –
Świetnie! Byłby to również wielki błąd w git, jeśli można zastąpić całą grupę historii bez żadnych zmian w haszach, ponieważ te skróty kryptograficzne są jednym z powodów używania git. –
- 1. Usuń puste zatwierdzenia w git
- 2. Reorder git commit historię według daty
- 3. Jak wyświetlić historię logów git dla podkatalogu repozytorium git?
- 4. Drukuj komunikat zatwierdzenia danego zatwierdzenia w git
- 5. Git: pobranie określonego zatwierdzenia
- 6. Czy można połączyć historię dwóch repozytoriów Git?
- 7. Zobacz historię git dla folderu
- 8. Git-svn - import pełną historię
- 9. Git - Co to jest identyfikator zatwierdzenia git?
- 10. Git - Usuń commit z historii
- 11. git wróć do pewnego zatwierdzenia
- 12. zmiana komentarza git zatwierdzenia pushed
- 13. Dzielenie pierwszego zatwierdzenia w git
- 14. Jak przywrócić moje zdalne repozytorium git do określonego zatwierdzenia?
- 15. Jak usunąć wcześniej dodane poddrzewo git i jego historię
- 16. Całkowicie usuń zatwierdzenie z bazy danych git
- 17. Napraw historię git z podwójnymi zatwierdzeniami
- 18. Wyświetl historię Git w Androidzie Studio
- 19. Czy git rm usuwa całą historię pliku?
- 20. Jak wyeksportować historię wersji gdoc do git?
- 21. ładnie wyświetla plik zmień historię w dzienniku git
- 22. Automatycznie przepisuj pełną historię git, aby pozbyć się prostych zatwierdzeń do scalania
- 23. git: usuń drugi commit
- 24. Git rozgałęzia się i angażuje historię po scaleniu
- 25. Otrzymuj rodziców zatwierdzenia scalenia w git
- 26. Zatwierdzenie zatwierdzenia kodu JIRA dla 'git'
- 27. Jak edytować wiadomość zatwierdzenia git merge
- 28. Git: przenieś konkretne zatwierdzenia do innej gałęzi
- 29. Uzyskaj wszystkie zatwierdzenia git od ostatniego tagu
- 30. Pchanie bez zatwierdzenia w Mercurial lub Git
Git jest przeznaczony do zapisywania zmian. Jaki jest efekt usunięcia historii? –
Moja historia jest zbyt duża, .git dir jest większy niż 400 MB, w każdym klonie muszę pobrać całą tę historię :( – paweb
Możliwy duplikat: [Jak usunąć starą historię z repozytorium git?] (Http: // /stackoverflow.com/questions/4515580/how-do-i-remove-the-old-history-from-a-git-repository) –