Ich habe viele Dateien festgeschrieben, die ich jetzt ignorieren möchte. Wie kann ich git anweisen, diese Dateien jetzt bei zukünftigen Commits zu ignorieren?
EDIT: Ich möchte sie auch aus dem Repository entfernen. Dies sind Dateien, die nach dem Erstellen oder zur Unterstützung benutzerspezifischer Tools erstellt wurden.
Antworten:
.gitignore
, um der Datei zu entsprechen, die Sie ignorieren möchtengit rm --cached /path/to/file
Siehe auch:
quelle
Nach dem Bearbeiten
.gitignore
, um die ignorierten Dateien abzugleichen, können Siegit ls-files -ci --exclude-standard
die Dateien anzeigen, die in den Ausschlusslisten enthalten sind. Sie können dann tunum sie aus dem Repository zu entfernen (ohne sie von der Festplatte zu löschen).
Bearbeiten : Sie können dies auch als Alias in Ihre .gitconfig-Datei einfügen, damit Sie es jederzeit ausführen können. Fügen Sie einfach die folgende Zeile unter dem Abschnitt [Alias] hinzu (ändern Sie sie nach Bedarf für Windows oder Mac):
(Das
-r
Flag inxargs
verhindertgit rm
, dass ein leeres Ergebnis ausgeführt und seine Verwendungsnachricht ausgedruckt wird, wird jedoch möglicherweise nur von GNU findutils unterstützt. Andere Versionen vonxargs
möglicherweise eine ähnliche Option oder nicht.)Jetzt können Sie einfach
git apply-gitignore
Ihr Repo eingeben und es erledigt die Arbeit für Sie!quelle
!
vor git? na ja ... meins hat als gearbeitetalias apply-gitignore="git ls-files -ci --exclude-standard -z | xargs -0 git rm --cached"
. tks!for /F "tokens=*" %a in ('git ls-files -ci --exclude-standard') do @git rm --cached "%a"
-r
ist dies Standard und wird von BSD-Versionen nicht akzeptiert. Also entfernen-r
.So lassen Sie die Datei im Repo, ignorieren aber zukünftige Änderungen:
und um dies rückgängig zu machen:
Um herauszufinden, welche Dateien auf diese Weise eingestellt wurden:
Gutschrift für die ursprüngliche Antwort auf http://blog.pagebakers.nl/2009/01/29/git-ignoring-changes-in-tracked-files/
quelle
git ls-files -ci --exclude-standard -z | xargs -0 git update-index --assume-unchanged
wenn das hilft.git rm --cached
wird die Datei im Repository entfernt, was nicht den Anforderungen des Quizzers entspricht. Vielen Dank. Ich weiß das wirklich zu schätzen. Ihre Antwort hilft mir sehr.Stellen Sie sicher, dass Ihr aktuelles Repo die neueste Version ist
.gitignore
Sie nach Ihren Wünschengit rm -r --cached .
git add .
dann wie gewohnt festschreiben
quelle
git reset HEAD
(Denken Sie daran, alle Änderungen zu verstauen)Alte Frage, aber einige von uns sind in
git-posh
(Powershell). Dies ist die Lösung dafür:quelle
Folge diesen Schritten:
Pfad zur
gitignore
Datei hinzufügenFühren Sie diesen Befehl aus
Änderungen wie gewohnt festschreiben.
quelle