Jak usunąć śledzenie wersji z projektu sklonowanego z git?


685

Chcę usunąć wszystkie śledzenie wersji z katalogu projektu.

Jaka jest poprawna metoda, aby to zrobić?

Czy mogę wykonać polecenie powłoki, takie jak:

rm -rf .git

z mojego katalogu projektów lub czy można to zrobić jako polecenie Git?

Użyłem tego projektu do nauki Gita i zdałem sobie sprawę, że popełniłem kilka błędów na początku projektu, przenosząc, zmieniając nazwy i usuwając pliki. Chciałbym usunąć wszystkie śledzenie Git i zacząć od nowa git init.



2
W zależności od tego, jak poważne były błędy, możesz chcieć zrobić interaktywną bazę dla całej sprawy i po prostu zmiażdżyć mnóstwo zmian na wczesnym etapie, ale zachowaj nowszą dobrą historię.
Cascabel

6
dla użytkowników systemu Windows:rd /s /q .git
Soorena

Odpowiedzi:


686

Wszystkie dane używane przez Git do przechowywania informacji są przechowywane .git/, więc usunięcie powinno działać dobrze. Oczywiście upewnij się, że kopia robocza jest w dokładnie takim stanie, w jakim chcesz, ponieważ wszystko inne zostanie utracone. .gitfolder jest ukryty, więc włącz Show hidden files, folders and disksopcję.

Stamtąd możesz uruchomić, git initaby utworzyć nowe repozytorium.


1
Jestem pewien, że moje podfoldery nie mają własnego ukrytego katalogu .git, ale mimo to popycham tę szarą ikonę podczas wypychania tych folderów do github ... czy jest coś jeszcze, co mogę wypróbować?
Kokodoko

1
Istnieje również .gitconfig, więc powinieneś go również usunąć.
Maximilian Mordig

rozważ 'code'git rm -r - zbuforował twój_folder / moim celem było przekształcenie śledzonego folderu git w folder potomny innego śledzonego folderu git. Nowy rodzic nie rozpozna nowego dziecka, dopóki nie usunę pamięci podręcznej folderu potomnego.
Ryan Huebert

419

rm -rf .gitpowinno wystarczyć. Spowoduje to usunięcie wszystkich informacji związanych z Git.


1
Jeśli dostaniesz trochę cannot unlink Permission deniedw explorersystemie Windows, możesz zabić proces w menedżerze zadań, ponownie uruchomić rm -rf .giti ponownie otworzyć Eksploratora. mi to pasuje!
Michael

10
Jeśli masz Git Bashna Windowsie, będzie również działać.
Viral

1
co -rfznaczy
nilon

13
-roznacza „rekurencyjny”, więc usunie całą zawartość folderu zamiast go pomyłkowo, ponieważ folder nie jest pusty, i -fsprawi, że nie będzie pytał, czy naprawdę jesteś pewien, czy coś usunąć.
Lily Ballard,

1
@Lucky_girl To usunie cały stan Git z kasy. Bez oddziałów, bez historii, bez pilotów, w ogóle nic. Wszystkie te rzeczy są przechowywane w .gitkatalogu. Bez tego dosłownie nie masz już repozytorium git.
Lily Ballard

96

Oprócz poniższych kroków możesz również usunąć plik .gitignore.

  • Rozważ usunięcie pliku .gitignore, jeśli chcesz usunąć ślady Git w swoim projekcie.

  • ** Zastanów się nad pozostawieniem pliku .gitignore, jeśli kiedykolwiek będziesz chciał ponownie włączyć Git do projektu.

Niektóre frameworki mogą automatycznie generować plik .gitignore, więc możesz go zostawić.


Systemy operacyjne oparte na Linux, Mac lub Unix

Otwórz terminal i przejdź do katalogu swojego projektu, tj cd path_to_your_project. - .

Uruchom to polecenie:

rm -rf .git*

Spowoduje to usunięcie śledzenia i metadanych Git z twojego projektu. Jeśli chcesz zachować metadane (takie jak .gitignore i .gitkeep), możesz usunąć tylko śledzenie, uruchamiając rm -rf .git.


Windows

Za pomocą wiersza polecenia

rmdirLub rdkomenda nie usunie / usunąć ukryte pliki lub foldery w katalogu można określić, więc należy użyć delpolecenia, aby mieć pewność, że wszystkie pliki są usuwane z .gitkatalogu.

  1. Otwórz wiersz polecenia

    1. Kliknij Startwtedy Runlub naciśnij Klawisz Windowsklawisz i rjednocześnie.

    2. Wpisz cmdi naciśnij Enter

  2. Przejdź do katalogu projektu, tj. - cd path_to_your_project

  1. Uruchom te polecenia

    1. del /F /S /Q /A .git

    2. rmdir .git

Pierwsze polecenie usuwa wszystkie pliki i foldery wewnątrz w .gitfolderze. Drugi usuwa .gitsam folder.

Brak wiersza polecenia

  1. Otwórz eksplorator plików i przejdź do swojego projektu

  2. Pokaż ukryte pliki i foldery - zobacz wizualny przewodnik po tym artykule

    1. W menu widoku na pasku narzędzi wybierz Options

    2. W Advanced Settingssekcji znajdź Hidden files and Folderspod Files and Folderslistą i wybierzShow hidden files and folders

  3. Zamknij menu opcji i powinieneś zobaczyć wszystkie ukryte foldery i pliki, w tym .gitfolder.

    Usuń .gitfolder Usuń .gitignoreplik ** (patrz uwaga na górze tej odpowiedzi)


1
rmdir .gitnie działa, ponieważ są pod nim foldery.
Dale

Dale, sprawdź linię pod rmdir .git. Wyjaśnia, że ​​powyższe polecenie rmdir .gitsłuży do usunięcia wszystkich plików i folderów w folderze .git, zanim rmdirpolecenie to usunie sam folder.
Matt C.

1
równie dobrze możesz to zrobić rd /s /q .git, co zdmuchnie folder i wszystko w nim
Greg

W przypadku systemu Windows rmdir /S .gitpraca została wykonana. Dzięki za to.
Eder Luis Jorge,

70

Nie jest to mądry wybór, aby przenosić wszystko .git*ręcznie, szczególnie gdy .gitpliki te są ukryte w podfolderach, tak jak mój stan: kiedy zainstalowałem Skeleton Zend 2 przez kompozytora + git, istnieje wiele .gitplików utworzonych w folderach i pod- lornetka składana.

Próbowałem rm -rf .gitna mojej powłoce GitHub, ale powłoka nie może rozpoznać parametru -rfRemove-Item.

www.montanaflynn.me wprowadza następujące polecenie powłoki, aby usunąć wszystkie .gitpliki jeden raz, rekurencyjnie! To naprawdę działa!

find . | grep "\.git/" | xargs rm -rf

5
„Próbowałem„ rm -rf .git ”na mojej powłoce Github, ale powłoka nie może rozpoznać parametru„ -rf ”parametru Usuń-element.” - to dlatego, że rmjest aliasem PowerShell remove-item. I argumenty -rfpowłoki * nix rm. W przypadku PowerShell użyj rm -recursive -forcezamiast tego.
KFL

14
NIEBEZPIECZNY! grep .gitdopasuje pliki takie jak legit.giflub anithing z „git” na środku nazwy pliku! Usuń lub edytuj odpowiedź !!!
pamatt

4
Zaktualizuj, aby dopasować tylko w katalogach git: znajdź. | grep "\ .git /"
Andrew

3
Nadal nie jest wystarczająco bezpieczny: przechwytuje pliki i katalogi, które kończą się .git. Powinno być grep "^\.git/"; nawet lepiej (i szybciej) byłoby aby filtrować według nazwy w findinwokacji: find . -name .git.
pvgoran,

Wykonaj następujące polecenia: find -name .git | xargs rm -rfi find -name .gitignore | xargs rm -rf.
Deweloper Marius Žilėnas

14

Pracuję w środowisku Linux. Usunąłem wszystkie pliki i foldery Git w sposób rekurencyjny:

rm -rf .git

rm -rf .gitkeep

9

W środowisku Windows możesz usunąć śledzenie Git z katalogu projektu, wpisując poniżej.

rd .git /S/Q

7

Z folderu głównego uruchom

find . | grep .git

Przejrzyj dopasowania i potwierdź, że zawierają tylko te pliki, które chcesz usunąć, i dopasuj do potrzeb. Gdy usatysfakcjonowany, biegnij

find . | grep .git | xargs rm -rf


5

Najprostszym sposobem rozwiązania tego problemu jest użycie wiersza polecenia. Wpisz to polecenie, a rm -R .git/następnie Enter ... LUB rm -rf .git/Naciśnij Enter ...


2

Wiersz polecenia systemu Windows (cmd) Użytkownik:

Można rekurencyjnie usunąć plik „.git” w źródłowym folderze projektu za pomocą polecenia w jednej linii.

FOR /F "tokens=*" %G IN ('DIR /B /AD /S *.git*') DO RMDIR /S /Q "%G"
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.