Ich möchte alle Dateien in meinem Repository ignorieren, außer denen, die im bin
Unterverzeichnis vorkommen. Ich habe versucht, Folgendes zu meinem hinzuzufügen .gitignore
:
*
!bin/*
Dies hat jedoch nicht den gewünschten Effekt: Ich habe eine neue Datei in erstellt bin/
, aber es wird git status
immer noch angezeigt nothing to commit (working directory clean)
.
Irgendwelche Vorschläge?
Antworten:
Dies ignoriert Root-Dateien und Root-Verzeichnisse und hebt dann das Root-Bin-Verzeichnis auf:
Auf diese Weise erhalten Sie das gesamte bin-Verzeichnis, einschließlich der Unterverzeichnisse und ihrer Dateien.
quelle
/stuff/
und!/stuff/specific/
, aber es ignoriert immer noch / stuff / spezifisch /git check-ignore -v
sagte mir, es sei wegen~/.gitignore
!/bin/
meiner Stammdatei hinzufügen.gitignore
, aber dann musste ich zusätzlich eine/bin/.gitignore
Datei hinzufügen mit!*
... Nur eine dieser Änderungen vorzunehmen funktionierte nicht. Es funktionierte erst, nachdem beide Änderungen kombiniert wurden.Hier erfahren Sie, wie Sie alles außer einem Verzeichnis " MY_SUPER_DUPER_TEMPLATE_directory " in einem Verzeichnis ignorieren
Struktur: / bitrix / templates / MY_SUPER_DUPER_TEMPLATE_directory
quelle
Sie müssen auf dem Weg zu den Zielen alles ausschließen, aber Sie müssen die Ziele einschließen:
Hinweis: Dies ist eine Ausschlussdatei (dh .gitignore), sodass die Logik invertiert wird. Ignoriere alle außer dem TLS-Verzeichnis, ignoriere alle im TLS-Verzeichnis, außer dem src-Verzeichnis ...
quelle
Das einzige Problem, das Sie haben, ist, dass das
bin
Verzeichnis selbst nicht mit dembin/*
Muster übereinstimmt , sodass git nicht einmal imbin
Verzeichnis nachschaut .Es gibt zwei Lösungen, die mir in den Sinn kommen.
.gitignore
::oder
.gitignore
::bin/.gitignore
::Ich bevorzuge die zweite Lösung, da die erste Lösung nicht aufhört, Dateien im
bin
Verzeichnis zu ignorieren , die sich in Unterverzeichnissen befinden, die nicht aufgerufen werdenbin
. Dies kann in Ihrer Situation von Bedeutung sein oder auch nicht.quelle
# Ignore everything * # But not these files... !/wp-content/ !/wp-content/plugins/ !/wp-content/plugins/my_plugin/ !/wp-content/plugins/my_plugin/*
Kein Blockcode in Kommentaren?Aus dem offiziellen Git-Dokument geht eines der Beispiele hervor:
Beispiel zum Ausschließen von allem außer einem bestimmten Verzeichnis foo / bar (beachten Sie das / * - ohne den Schrägstrich würde der Platzhalter auch alles in foo / bar ausschließen):
Für eine Erklärung über den führenden Schrägstrich: Wenn führenden Schrägstrich in gitignore verwenden .
quelle
Versuchen Sie, in der neuesten GIT-Version zu folgen.
quelle
Ich denke, ein besserer Weg wäre, jedes Muster im obersten Git-Verzeichnis zu verankern, indem man das Muster mit einem Schrägstrich beginnt:
Anstatt alle Dateien zu ignorieren, werden nur Dateien der obersten Ebene ignoriert, nicht diejenigen in dem Verzeichnis, die Sie nicht ignorieren möchten.
quelle
Das
.gitignore
funktioniert bei mir:quelle
Versuchen Sie diesen obskuren Git-Bug.
Ich hoffe es hilft :)
Unterstützende Dokumente Git-Bug-Beispiel
PS: Probieren Sie es zuerst aus, bevor Sie einen Kommentar abgeben.
quelle
Ich musste das kürzlich tun:
Ich bin mir nicht sicher, warum ich zwei Zeilen benötige, um einen Ordner auszuschließen, aber das hat bei mir und Macos funktioniert.
quelle