Kann ich Dateien lokal ignorieren, ohne die globale Git-Konfiguration für alle anderen zu verschmutzen? Ich habe nicht verfolgte Dateien, die in meinem Git-Status Spam sind, aber ich möchte nicht für jede einzelne zufällige nicht verfolgte Datei in meinen lokalen Zweigen Änderungen an der Git-Konfiguration vornehmen.
Antworten
Zu viele Anzeigen?Von die entsprechende Git-Dokumentation :
Muster, die für ein bestimmtes Repository spezifisch sind, aber nicht mit anderen verwandten Repositories geteilt werden müssen (z. B. Hilfsdateien, die sich innerhalb des Repositorys befinden, aber spezifisch für den Arbeitsablauf eines Benutzers sind), sollten in die
$GIT_DIR/info/exclude
archivo.
El .git/info/exclude
Datei hat das gleiche Format wie jede .gitignore
Datei. Eine weitere Möglichkeit ist die Einstellung core.excludesFile
auf den Namen einer Datei, die globale Muster enthält.
Beachten Sie, dass Sie nach der Bearbeitung der Ignoriermuster folgende Schritte ausführen müssen, wenn Sie bereits unbearbeitete Änderungen haben:
git update-index --assume-unchanged <file-list>
_Anmerkung zu $GIT_DIR
_ : Dies ist eine Notation, die überall das Git-Handbuch, um einfach den Pfad zum Git-Repository anzugeben. Wenn die Umgebungsvariable gesetzt ist, überschreibt sie den Speicherort des Repositorys, in dem Sie sich befinden, was wahrscheinlich nicht das ist, was Sie wollen.
Editar : Eine andere Möglichkeit ist die Verwendung:
git update-index --skip-worktree <file-list>
Kehren Sie es um:
git update-index --no-skip-worktree <file-list>
Update : Erwägen Sie die Verwendung von git update-index --skip-worktree [<file>...]
stattdessen, danke @danShumway! Siehe Borealids Erklärung zum Unterschied zwischen den beiden Optionen .
Alte Antwort:
Wenn Sie lokale Änderungen an verfolgten Dateien ignorieren müssen (das ist bei lokalen Änderungen an Konfigurationsdateien der Fall), verwenden Sie git update-index --assume-unchanged [<file>...]
.
Fügen Sie die folgenden Zeilen in den Abschnitt [alias] Ihrer .gitconfig-Datei ein
ignore = update-index --assume-unchanged
unignore = update-index --no-assume-unchanged
ignored = !git ls-files -v | grep "^[[:lower:]]"
Jetzt können Sie git ignore my_file
um Änderungen an der lokalen Datei zu ignorieren, und git unignore my_file
aufhören, die Veränderungen zu ignorieren. git ignored
listet die ignorierten Dateien auf.
Diese Antwort geht aus folgenden Quellen hervor http://gitready.com/intermediate/2009/02/18/temporarily-ignoring-files.html .
Sie haben mehrere Möglichkeiten:
- Eine schmutzige (oder ungebundene) Nachricht hinterlassen
.gitignore
Datei in Ihrem Arbeitsverzeichnis (oder wenden Sie sie automatisch mit topgit oder ein anderes Patch-Tool). - Legen Sie die Ausschlüsse in Ihrem
$GIT_DIR/info/exclude
Datei, wenn dies nur für einen Baum gilt. - Laufen lassen
git config --global core.excludesfile ~/.gitignore
und fügen Sie Muster zu Ihrem~/.gitignore
. Diese Option wird verwendet, wenn Sie bestimmte Muster über alle tous Bäume. Ich verwende dies für.pyc
y.pyo
Dateien, zum Beispiel.
Achten Sie außerdem darauf, dass Sie gegebenenfalls Muster verwenden und nicht explizit Dateien aufzählen.
Ich glaube, Sie suchen nach:
git update-index --skip-worktree FILENAME
die lokal vorgenommene Änderungen ignorieren
Hier ist http://devblog.avdi.org/2011/05/20/keep-local-modifications-in-git-tracked-files/ mehr Erklärungen zu diesen Lösungen!
um die Verwendung rückgängig zu machen:
git update-index --no-skip-worktree FILENAME
- See previous answers
- Weitere Antworten anzeigen