Was ist der richtige Weg, um Git dazu zu bringen, temporäre Dateien, die von vim in allen Verzeichnissen erstellt wurden, zu ignorieren (entweder global im System oder lokal für ein einzelnes Projekt)?
git
vim
ignore
temporary-files
jrdioko
quelle
quelle
*.sw?
löst den Standard,.swp
aber auch die alternativen Auslagerungsdateierweiterungen wie.swo
..swf
Dateien. Ich würde davon dringend abraten, insbesondere wenn Sie eine Flash-App erstellen..
sollte dies jedoch verhindern..tmp.swp
,.tmp.swo
...,.tmp.swa
), vim schafft.tmp.svz
. Mir fehlt die Geduld zu sehen, was danach kommt.tmp.saa
- vielleicht.tmp.rzz
? UPDATE: Wenn man in die Quelle (src/memline.c
, Funktionfindswapname()
) schaut , gibt es danach.saa
mit einem Fehler auf: "E326: Zu viele Auslagerungsdateien gefunden".Antworten:
Vim temporäre Dateien enden mit ~, sodass Sie der Datei
.gitignore
die Zeile hinzufügen könnenVim erstellt auch Auslagerungsdateien mit den Erweiterungen swp und swo. Um diese zu entfernen, verwenden Sie die Zeilen:
Dadurch werden alle temporären vim-Dateien in einem einzelnen Projekt ignoriert
Wenn Sie dies global tun möchten, können Sie eine Gitignore-Datei in Ihrem Zuhause erstellen (Sie können ihr einen anderen Namen oder Speicherort geben) und den folgenden Befehl verwenden:
Dann müssen Sie nur noch die Dateien hinzufügen, die Sie ignorieren möchten
quelle
.*.sw*
in my verwende.gitignore
, um sie alle auszublenden..*.sw?
genauer zu sein. (Obwohl ich gesehen habe, dass Leute eine Variante verwenden, um*.sw*
zu vermuten, dass mir etwas wirklich Offensichtliches fehlt ...).*.s[a-w][a-z]
ignorieren.svg
Dateien.Alternativ können Sie vim so konfigurieren, dass die Auslagerungsdateien an einem separaten Speicherort
.vimrc
gespeichert werden , z. B. indem Sie Ihrer Datei Zeilen hinzufügen, die den folgenden ähnlich sind :Weitere Informationen finden Sie in diesem Vim-Tipp .
quelle
$TMPDIR
das aktuelle Tempdir abrufen können :)$TEMP
dasset undodir=$TEMP//
, da ich auch persistente Rückgängig-Dateien speichere.Dies sollte nur pro Benutzer und nicht pro Repository erfolgen. Wenn Joe Emacs verwendet, möchte er, dass Emacs-Sicherungsdateien ignoriert werden, aber Betty (die vi verwendet) möchte, dass vi-Sicherungsdateien ignoriert werden (in vielen Fällen sind sie ähnlich, aber es gibt ungefähr 24.893 gängige Editoren und es ist hübsch lächerlich zu versuchen, alle verschiedenen Backup-Erweiterungen zu ignorieren.)
Mit anderen Worten, setzen Sie nichts ein
.gitignore
odercore.excludes
ein$GIT_DIR/config
.$HOME/.gitconfig
Geben Sie stattdessen die Informationen ein (wie von Nunopolonia vorgeschlagen--global
). Beachten Sie, dass "global" pro Benutzer und nicht pro System bedeutet.Wenn Sie eine systemweite Konfiguration für alle Benutzer wünschen (was Sie nicht tun), benötigen Sie einen anderen Mechanismus. (Möglicherweise mit Vorlagen, die vor der Initialisierung des Repositorys eingerichtet wurden.)
quelle
Ich würde auch empfehlen, Dateien wie: zu ignorieren.
wie Sie möglicherweise Dateien haben, die mit enden
.swp
quelle
Beenden Sie vim vor "git commit".
um
vim
andere Ordner für Sicherungsdateien zu verwenden (/tmp
zum Beispiel):Damit vim die Verwendung des aktuellen Ordners für SWP-Dateien beendet:
Die Verwendung
-=, +=
wäre im Allgemeinen gut, da vim andere Standardeinstellungen für bdir hat, dir , wir möchten nicht alle löschen. Weitere Informationen zu bdir finden Sie in der vim-Hilfe :quelle
Hier ist der eigentliche VIM-Code, der die Swap-Dateierweiterungen generiert:
Dadurch werden Auslagerungsdateien im folgenden Format generiert:
Welches ist so ziemlich das, was in Githubs eigener Gitignore-Datei für VIM enthalten ist .
Wie andere richtig bemerkt haben, ignoriert dieser Gitignore auch SVG- Bilddateien und SWF- Adobe-Flash-Dateien.
quelle
Ich habe festgestellt, dass Git temporäre Dateien, die von vim erstellt wurden, ignoriert:
Es kann auch hier angesehen werden .
quelle
.swf
Dateien ignoriert, die immer wieder auftauchen, wenn Sie eine Flash-App erstellen..svg
was ein Problem sein kann.*.un~
da Sie haben*~
sicher,
Sie müssen lediglich einen ".gitignore" im Home-Verzeichnis Ihres Projekts erstellen und enthalten
das ist es
in einem Befehl
quelle
echo *.swp >> .gitignore
es ist besser, das Überschreiben des vorherigen .gitignore zu vermeiden.echo '*.swp' >> .gitignore
>
Charaktere verpassen . Ich habe das mal mit derpasswd
Datei gemacht und mich dann abgemeldet :-)http://vimdoc.sourceforge.net/htmldoc/recover.html
http://www.vim.org/scripts/script.php?script_id=1075
quelle
In meinem Fall werden die temporären Dateien bereits durch vorherige Aktionen festgeschrieben. Wenn Sie also .gitignore ändern, werden diese festgeschriebenen Dateien nicht beeinflusst. Sie müssen
git rm files_to_be_ignored --cache
zuerst festschreiben, dann festschreiben und dann FERTIG.quelle
Dies funktioniert auf einem Mac, wie von Alex Moore-Niemi festgestellt:
Stellen Sie sicher, zu verwenden
TMPDIR
und nichtTEMPDIR
.quelle
Wenn Sie die Quellcodeverwaltung verwenden. vim temp dateien sind ziemlich nutzlos.
Vielleicht möchten Sie vim so konfigurieren, dass sie nicht erstellt werden.
Bearbeiten Sie einfach Ihr ~ / .vimrc und fügen Sie die folgenden Zeilen hinzu:
quelle
screen
(oderdtach
wenn er nicht alle Bildschirmfunktionen möchte). Stromausfälle werden von der USV behandelt. Backups werden von {Ihrer bevorzugten Software zum Sichern aller wichtigen Dateien} durchgeführt. Ich verwende Auslagerungsdateien, um benachrichtigt zu werden, wenn ich versuche, bereits bearbeitete Dateien zu bearbeiten. Sicherungsdateien, da der N + 1-Platz bei der Sicherung nicht schadet, machen Dateien rückgängig, da dauerhaftes Rückgängigmachen praktisch ist. Nur das Rückgängigmachen von Dateien ist für mich etwas wichtig.