Wyczyszczenie wszystkich plików nie usuwa historii. Musisz najpierw stworzyć gałąź, która nie ma historii i dodać swoje pliki konfiguracyjne. W dzisiejszych czasach dostępna git checkoutjest --orphanopcja, która tworzy gałąź bez historii. Oto informacje o --orphanopcji:
--orphan <nowa_ gałąź>
Utwórz nową gałąź osieroconą o nazwie <new_branch>, zaczynającą się od <start_point> i przełącz się do niej. Pierwsze zatwierdzenie dokonane w tej nowej gałęzi nie będzie miało rodziców i będzie korzeniem nowej historii całkowicie odłączonej od wszystkich innych gałęzi i zatwierdzeń.
Indeks i drzewo robocze są dostosowane tak, jakbyś wcześniej uruchomił "git checkout <start_point>". Pozwala to na rozpoczęcie nowej historii, która rejestruje zestaw ścieżek podobnych do <start_point> poprzez łatwe uruchomienie „git commit -a”, aby dokonać zatwierdzenia roota.
Może to być przydatne, gdy chcesz opublikować drzewo z zatwierdzenia bez ujawniania jego pełnej historii. Możesz to zrobić, aby opublikować gałąź projektu open source, której bieżące drzewo jest „czyste”, ale którego pełna historia zawiera zastrzeżone lub w inny sposób obciążone fragmenty kodu.
Jeśli chcesz rozpocząć odłączoną historię, która rejestruje zestaw ścieżek, który jest zupełnie inny niż ten z <start_point>, powinieneś wyczyścić indeks i drzewo robocze zaraz po utworzeniu gałęzi osieroconej, uruchamiając "git rm -rf. " z najwyższego poziomu drzewa roboczego. Następnie będziesz gotowy do przygotowania nowych plików, ponownego zapełnienia drzewa roboczego, skopiowania ich z innego miejsca, wypakowania tarballa itp.
Oto link do dokumentacji do kasy . Możesz też biegać git help checkout.
Po utworzeniu gałęzi bez historii, a następnie po przesłaniu jej na serwer, również nie będzie miała tej historii. FWIW, pomaga mi myśleć o git push„sprawieniu, aby zdalna gałąź wyglądała tak samo jak moja lokalna”. Więc jeśli masz historię i naciskasz, będzie miała historię. Jeśli tego nie zrobisz, wypchnięta gałąź nie.