Was sind die Unterschiede zwischen .gitignore
und .gitkeep
? Sind sie dasselbe mit einem anderen Namen oder haben beide eine andere Funktion?
Ich scheine nicht in der Lage zu sein, viel Dokumentation zu finden .gitkeep
.
.gitkeep
ist nicht dokumentiert, da es keine Funktion von Git ist.
Git kann kein vollständig leeres Verzeichnis hinzufügen . Personen, die leere Verzeichnisse in Git verfolgen möchten, haben die Konvention erstellt, Dateien .gitkeep
in diese Verzeichnisse aufzunehmen. Die Datei kann beliebig genannt werden; Git weist diesem Namen keine besondere Bedeutung zu.
Es gibt eine konkurrierende Konvention .gitignore
, den leeren Verzeichnissen eine Datei hinzuzufügen , um sie zu verfolgen, aber einige Leute sehen dies als verwirrend an, da das Ziel darin besteht, die leeren Verzeichnisse beizubehalten und nicht zu ignorieren. .gitignore
wird auch verwendet, um Dateien aufzulisten, die von Git bei der Suche nach nicht verfolgten Dateien ignoriert werden sollten.
README
Datei in das ansonsten leere Unterverzeichnis zu stellen, die einige Informationen darüber enthält, wofür dieses Unterverzeichnis verwendet werden soll? Es scheint verwirrend, eine Datei namens zu haben.gitkeep
, die eigentlich nicht Teil von git ist..gitignore
Datei mit zwei Zeilen:*
und!.gitignore
ist mehr als ausreichend klar, um zu vermitteln, was los ist. Wenn weitere Ausarbeitungen erforderlich sind, fügen Sie mithilfe der#
Syntax einen Kommentar am Anfang der Datei hinzu ..keep
Dateien geringfügig geändert hat, anstatt.gitkeep
diese leeren Ordner beizubehalten, da git nicht das einzige Quellcodeverwaltungssystem ist, das leere Ordner nicht verfolgt. Weitere Details hier: github.com/rails/rails/issues/2800.gitkeep
ist nur ein Platzhalter. Eine Dummy-Datei, damit Git das Verzeichnis nicht vergisst, da Git nur Dateien verfolgt.Wenn Sie ein leeres Verzeichnis möchten und sicherstellen möchten, dass es für Git "sauber" bleibt, erstellen Sie ein Verzeichnis
.gitignore
mit den folgenden Zeilen:Wenn Sie möchten, dass nur ein Dateityp für Git sichtbar ist, finden Sie hier ein Beispiel zum Herausfiltern aller
.txt
Dateien mit Ausnahme von .gitignore und allen Dateien:('#' zeigt Kommentare an.)
quelle
!
vor.gitignore
? Ist das, um dem Punkt zu entkommen?!
negiert den folgenden Teil, wie es normalerweise bei der Programmierung der Fall ist.!.gitignore
in einem Git - Datei ignorieren, fügen Sie entweder die Datei dann bearbeiten oder Kraft fügen Sie ihn mit entsprechendem Inhalt ( „*“ alles zu ignorieren, oder gar nichts zu einfach sicherstellen , dass der Ordner vorhanden ist ) weiteres Beispiel .Since the git ignore file is already in the repo it is not necessary to not-ignore it - it is already tracked.
------ Wenn dies nicht der Fall ist und Sie keine zwingende Hinzufügung vornehmen, können Sie dies möglicherweise vergessen. In trivialen Fällen kein Problem, aber wenn es sich um eine größere Datei handelt, sind Sie möglicherweise verärgert. Die Verwendung!.gitignore
verhindert, dass Sie sich in den Fuß schießen. Ich bevorzuge es, mich in der Vergangenheit verbrannt zu haben.ist eine Textdatei, die eine Liste von Dateien in Ihrem Verzeichnis enthält, die git ignoriert oder nicht im Repository hinzufügt / aktualisiert.
Da Git leere Verzeichnisse zu einem Repository entfernt oder nicht hinzufügt, ist .gitkeep eine Art Hack (ich glaube nicht, dass es offiziell als Teil von Git benannt ist), um leere Verzeichnisse im Repository zu behalten.
Führen Sie einfach eine aus
touch /path/to/emptydirectory/.gitkeep
, um die Datei hinzuzufügen, und Git kann dieses Verzeichnis nun im Repository verwalten.quelle
.gitignore
s haben, wie Sie möchten, wenn Sie nicht jedes Mal den vollständigen Pfad zu jedem Ordner angeben möchten..gitkeep
Dateien zu erwähnen, aber es werden keine leeren Verzeichnisse verfolgt. Nur Ordner verfolgen, wo.gitkeep
Dateien vorhanden sind. warum so?.gitignore
Sie durch mehrere s davon abgehalten, jedes Mal den vollständigen Pfad zu jedem Ordner anzugeben? Ich glaube, mir fehlt etwas Offensichtliches.