Jestem w trakcie rozdzielania starego zestawu aplikacji, które pierwotnie znajdowały się w jednym repozytorium Subversion.Jak usunąć wszystkie pliki w repozytorium Git, które nie znajdują się w katalogu roboczym?
Przekonwertowałem go do repozytorium Git i usunąłem to, czego nie chcę, ale chciałbym schudnąć repozytorium poprzez pozbycie się historycznych danych związanych z usuniętymi plikami (oryginalne repozytorium będzie być utrzymywane dla celów referencyjnych, więc nie jest potrzebne w nowym).
Idealnie chciałbym przejść przez całe repozytorium i usunąć wszystkie pliki lub foldery nieobecne w katalogu roboczym wraz z powiązaną z nimi historią. To zostawiłoby mnie z treścią HEAD i historią commitów mających wpływ na te pliki. Jednak nie znalazłem sposobu na zrobienie tego (osierocenie HEAD nie pomaga, ponieważ nie chroni historii).
Czy to możliwe? Wiem, jak usunąć pojedynczy plik lub folder z całej historii za pomocą git-filter-branch, ale jest zbyt wiele plików i folderów, aby było to praktyczne podejście ... chyba że istnieje sposób na filtrowanie wszystkich plików nie w HEAD ?
Co o plikach został przemianowany w przeszłości? Rozwiń historię po zmianie nazwy lub zachowaj jej zmianę (i śledź inną nazwę pliku przed zmianą nazwy). – knittl
Dobra uwaga. Wolałbym zachować historię przed zmianą nazwy, więc musiałbym mieć kilka dodatkowych plików, które są w porządku. –