Ich habe einen lokalen Git auf meinem Computer eingerichtet. Als ich git initialisierte, fügte ich vorkompilierte Bibliotheken und Binärdateien hinzu. Während meiner Entwicklung möchte ich diese Dateien jedoch nicht mehr zeitweise einchecken. Ich möchte diese Dateien nicht aus dem Repo entfernen. Gibt es eine Möglichkeit, diese Dateien erst zu verfolgen, wenn ich meine Entwicklung abgeschlossen habe? (Ich glaube, ich kann .gitignore nicht verwenden, da es nur für Dateien funktioniert, die nicht in git enthalten sind. Ich möchte die Nachverfolgung von Dateien vorübergehend deaktivieren.)
git
github
repository
agent.smith
quelle
quelle
Antworten:
Git Update-Index sollte tun, was Sie wollen
Dadurch wird git mitgeteilt, dass Sie die Änderungen an der Datei ignorieren möchten
git update-index --assume-unchanged path/to/file
Wenn Sie wieder den Überblick behalten möchten
git update-index --no-assume-unchanged path/to/file
Github-Dokumentation: Update-Index
quelle
git rm --cached
zu einem Löschen der lokalen Kopien auf anderen Computern zu führen, auf denen derselbe Zweig beim nächsten Abrufen ausgecheckt wird. Siehe arlocarreon.com/blog/git/… und insbesondere die Diskussion darunter.Sie könnten Ihre Dateien danach nicht mehr verfolgen
Fügen Sie Ihre Dateien mit hinzu
sie schieben oder machen was du willst.
quelle
git rm --cached .DS_Store
dann druckt esrm '../.DS_Store'
und die lokale Datei wird gelöscht ??! (git version 2.6.4 (Apple Git-63)
)Sie sollten jedoch in erster Linie keine kompilierten Binärdateien und externen Abhängigkeiten festlegen. Verwenden Sie stattdessen ein Tool wie Bundler, um diese zu ziehen.
quelle
Verwenden Sie den folgenden Befehl, um die Verfolgung von Dateien aufzuheben
quelle
Das Git-Buch erwähnt dies in Abschnitt 2.4: "Dinge rückgängig machen". Grundsätzlich müssen Sie den Status des Index für einige Dateien auf den HEAD-Status zurücksetzen, dh auf den Status der letzten Prüfung (oder des letzten Commits). Dadurch wird das Staging der Datei auf den aktuellen Index rückgängig gemacht. Der Befehl für diese Aufgabe lautet
git reset
: [1]Der Befehl, den Sie ausführen müssen, lautet also:
Die neueren Versionen von git (ich glaube seit 1.6 oder so) geben diesen Befehl (und viele mehr) als Tipp bei der Ausführung
git status
. Diese Versionen sind sehr benutzerfreundlich. Ein persönlicher Tipp: Wenn Sie nur wenige Dateien bereitstellen, verwenden Siegit add -i
. Dadurch wird das interaktive Staging-Tool gestartet, das die Sache besonders einfach macht. Außerdem empfehle ich dringend, das Buch zu lesen, da es sehr explizit auf die Verwendung von Git in praktischen Situationen hinweist.[1] http://www.git-scm.com/book
quelle
git reset [file]
der einfachste Weg ist, Dateien zu entfernen.Keine Antwort auf die ursprüngliche Frage. Aber das könnte jemandem helfen.
Um die vorgenommenen Änderungen anzuzeigen ( wissen Sie, welche Dateien als --assume-unverändert markiert sind )
Die resultierende Liste der Dateien hat ein Präfix mit einem Zeichen (z. B. H oder h). Wenn es sich um Kleinbuchstaben handelt (dh h), wurde die Datei als --assume-unverändert markiert
quelle
Ich gehe davon aus, dass Sie fragen, wie ALLE Dateien im Build-Ordner oder im Bin-Ordner entfernt werden sollen, anstatt jede Datei einzeln auszuwählen.
Sie können diesen Befehl verwenden:
git rm -r -f /build\*
Stellen Sie sicher, dass Sie sich im übergeordneten Verzeichnis des Erstellungsverzeichnisses befinden.
Dieser Befehl "löscht" rekursiv alle Dateien, die sich in den Ordnern bin / oder build / befinden. Mit dem Wort "Löschen" meine ich, dass git vorgibt, dass diese Dateien "gelöscht" werden und diese Dateien nicht verfolgt werden. Der Git markiert diese Dateien wirklich als gelöscht.
Stellen Sie sicher, dass Sie Ihren .gitignore für bevorstehende Commits bereit haben.
Dokumentation: git rm
quelle
git reset [Datei]
Holen Sie sich die Datei vom Staging-Bereich zurück in das Arbeitsverzeichnis
Ich vergesse oft, meine Knotenmodule zur .gitignore-Datei hinzuzufügen, dies löst das Problem.
quelle
Das hat bei mir funktioniert
git reset HEAD 'Dateiname'
quelle
So entfernen Sie alle Untrack-Dateien. Versuchen Sie diesen Terminalbefehl
quelle
Um nicht verfolgte Dateien und Ordner zu entfernen, setzen Sie git clean -fdx
quelle