Kann ich git anweisen, Dateien zu ignorieren, die geändert (gelöscht) wurden, aber nicht festgeschrieben werden sollten?
Die Situation ist, dass ich im Repo ein Unterverzeichnis habe, das Dinge enthält, an denen ich überhaupt nicht interessiert bin. Deshalb habe ich es gelöscht, um zu verhindern, dass es in automatischen Vervollständigungen und dergleichen (in der IDE) angezeigt wird.
Aber jetzt, wenn ich diesen Ordner zu .gitignore hinzufüge, ändert sich einfach nichts. Das gesamte Material wird durch den Git-Status als gelöscht angezeigt.
Gibt es eine Möglichkeit, Git dazu zu bringen, es so oder so zu ignorieren?
(Wenn ich git-svn verwende, kann ich alternativ die Änderungen an das lokale git übergeben und sicherstellen, dass sie nicht an das svn-Repo weitergegeben werden?)
Antworten:
Besuche die aus git-update-Index - man - Seite und den --assume-Bit unverändert und bezogen.
Wenn ich dein Problem habe, mache ich das
oder eine bestimmte Datei
quelle
git update-index --no-assume-unchanged config/database.yml
--assume-unchanged
.Eine neuere und bessere Option ist eine,
git update-index --skip-worktree
die bei einem Hard-Reset oder einer neuen Änderung durch Ziehen nicht verloren geht.Siehe die Manpage unter http://schacon.github.com/git/git-update-index.html
Und ein Vergleich unter http://fallengamer.livejournal.com/93321.html
quelle
skip-worktree
es etwas umständlich ist, diese Dateien zu finden , sobald die Änderungen einer Datei ausgeblendet wurden . Der einzige Weg, den ich kenne, istgit ls-files -v |grep -v '^H'
. Außerdem kennen viele GUI-Tools diese Funktion nicht und können lustige Fehler verursachen, wenn z. B. ein Fehlercheckout
aufgrund "versteckter" geänderter Dateien auftritt.Verwenden Sie diesen Code
quelle
Verfolgte Dateien können nicht ignoriert werden, daher müssen Sie sie zuerst aus Ihrem Index entfernen. Fügen Sie ein hinzu
.gitignore
, das die nicht gewünschten Verzeichnisse ignoriert, löschen Sie sie und entfernen Sie alle Nachzügler mitgit rm --cached
.quelle
Was ich normalerweise mache ist
quelle