Wenden Sie gitignore auf ein vorhandenes Repository an, das bereits eine große Anzahl von Dateien verfolgt
Ich ein vorhandenes Visual Studio-Projekt in meinem repository. Ich habe vor kurzem Hinzugefügt .gitignore-Datei in mein Projekt und ich gehe davon aus, dass man sagt Git zu ignorieren, die Dateien in der Datei aufgelistet ist.
Mein problem ist, dass all diese Dateien werden bereits verfolgt und soweit ich weiß Git nicht ignorieren, dass eine Datei war schon verfolgt, bevor die Regel Hinzugefügt wurde, um diese Datei zu ignorieren.
Es wurde vorgeschlagen, um zu verwenden: git rm --cached
und manuell un-verfolgen Sie, aber das dauert mir auch immer zu gehen durch Sie eins nach dem anderen.
Dachte ich über das löschen des repository und neu es wieder, aber dieses mal mit .gitignore-Datei vorhanden, aber es muss einen besseren Weg, dies zu tun.
git rm --cached
ganze Verzeichnisse mit dem -r
- option, wenn das hilfreich ist InformationsquelleAutor der Frage Tohid | 2013-10-29
Du musst angemeldet sein, um einen Kommentar abzugeben.
Diese Antwort mein problem gelöst:
Verpflichten sich, alle ausstehenden änderungen, dann führen Sie diesen Befehl:
Dieser entfernt alles aus dem index, dann führen Sie einfach:
Commit:
InformationsquelleAutor der Antwort Tohid
Erstellen .gitignore-Datei, um das zu tun, erstellen Sie einfach eine leere .txt-Datei.
Dann müssen Sie den Namen ändern, schreiben Sie die folgende Zeile am cmd (wo
git.txt
ist der name der Datei, die Sie gerade erstellt haben):rename git.txt .gitignore
Dann können Sie die Datei öffnen und schreiben, alle die nicht verfolgte Dateien, die Sie ignorieren möchten für gut. Zum Beispiel, meine sieht wie folgt aus:
``
Gibt es eine ganze Sammlung von nützlichen .gitignore-Dateien von GitHub
Sobald Sie diese haben, müssen Sie es hinzufügen, um Ihre git-repository genau wie jede andere Datei auch, nur es muss im root des repository.
Dann im terminal schreiben Sie die folgende Zeile:
git config --global core.excludesfile ~/.gitignore_global
Vom oficial doc:
Wenn das Respository heruntergeladen werden, die bereits existiert, dann müssen Sie diese Befehle ausführen:
Wenn der Schritt 2 nicht funktioniert, dann sollte man schreiben das Loch Weg der Dateien, die Sie hinzufügen möchten.
InformationsquelleAutor der Antwort SomeAnonymousPerson
Als angegeben hier können Sie den index aktualisieren:
Dadurch werden die Dateien nicht zeigen, bis in
git status
odergit diff
.Beginnen die Verfolgung der Dateien wieder, die Sie ausführen können:
InformationsquelleAutor der Antwort Patrick James McDougle
Hier ist ein Weg, um "untrack" alle Dateien, die sonst ignoriert werden, unter der aktuellen Auswahl ausschließen Muster:
Diese Blätter die Dateien in Ihrem Arbeitsverzeichnis, sondern entfernt Sie aus dem index.
Den trick hier ist, um eine nicht vorhandene index-Datei auf git ls-files so, dass es denkt, es gibt keine verfolgt-Dateien. Die shell obige code fragt alle Dateien ignoriert werden, wenn der index leer waren und dann entfernt Sie vom eigentlichen index mit git rm.
Nachdem die Dateien wurden "nicht verfolgte", verwenden Sie git status, um zu überprüfen, dass auch nichts wichtiges entfernt wurde (wenn so passen Sie die exclude-mustern und mithilfe von git reset -- Pfad wiederherstellen, entfernt der index-Eintrag). Dann machen Sie einen neuen commit, der lässt die "crud".
Den "crud" wird immer noch in jedem Alter verpflichtet. Sie können git-filter-branch zu erzeugen, saubere Versionen der alten begeht, wenn Sie wirklich brauchen eine saubere Geschichte (n.b. mit git-filter-branch wird "die Geschichte umzuschreiben", so sollte es nicht leichtfertig unternommen werden darf, wenn Sie irgendwelche Mitarbeiter, die zogen alle Ihre historischen begeht nach dem "crud" zuerst eingeführt wurde).
InformationsquelleAutor der Antwort
Verwenden
git clean
Holen Sie sich Hilfe auf diesem läuft
Wenn Sie möchten, um zu sehen, was passieren würde, ersten, stellen Sie sicher, pass-n-Schalter für einen Testlauf:
Entfernen gitingnored Müll
Vorsichtig: Sie ignorieren können lokale config-Dateien wie Datenbank.yml, die auch entfernt werden. Verwenden Sie auf Ihr eigenes Risiko.
Dann
InformationsquelleAutor der Antwort Nedudi