Was sind die Unterschiede zw .gitignore
und .gitkeep
? Sind sie dasselbe mit einem anderen Namen, oder haben sie beide eine andere Funktion?
Ich scheine nicht in der Lage zu sein, viele Dokumentationen zu finden .gitkeep
.
Matti
Was sind die Unterschiede zw .gitignore
und .gitkeep
? Sind sie dasselbe mit einem anderen Namen, oder haben sie beide eine andere Funktion?
Ich scheine nicht in der Lage zu sein, viele Dokumentationen zu finden .gitkeep
.
Wackel
.gitkeep
ist nicht dokumentiert, weil es kein Feature von Git ist.
Git kann kein vollständig leeres Verzeichnis hinzufügen. Leute, die leere Verzeichnisse in Git verfolgen möchten, haben die Konvention erstellt, Dateien mit dem Namen .gitkeep
in diesen Verzeichnissen. Die Datei konnte beliebig heißen; Git weist diesem Namen keine besondere Bedeutung zu.
Es gibt eine konkurrierende Konvention zum Hinzufügen von a .gitignore
file in die leeren Verzeichnisse, um sie nachzuverfolgen, aber einige Leute sehen dies als verwirrend an, da das Ziel darin besteht, die leeren Verzeichnisse zu behalten und sie nicht zu ignorieren; .gitignore
wird auch verwendet, um Dateien aufzulisten, die von Git bei der Suche nach nicht getrackten Dateien ignoriert werden sollen.
Wäre es nicht eine bessere Lösung, a README
Datei in dem ansonsten leeren Unterverzeichnis, die ein paar Informationen darüber enthält, wofür dieses Unterverzeichnis verwendet werden soll? Es scheint verwirrend, wenn eine Datei aufgerufen wird .gitkeep
das ist nicht wirklich Teil von git.
– Tamouse
14. Juli 2012 um 21:45 Uhr
@tamouse oft reicht der Pfad des leeren Verzeichnisses (z. B. Namen der Ordner) aus, um seinen Zweck auszudrücken (Beispiele: Vorlagen/Cache, Upload/Thumbs usw.). In diesen Fällen fühlt es sich überflüssig an, eine Readme-Datei in diese einzufügen.
– Halil Özgür
31. Januar 2013 um 8:33 Uhr
Personen, die leere Verzeichnisse verfolgen möchten, sollten in einer README-Datei angeben, dass das Verzeichnis erstellt werden muss, oder die Verzeichnisse mit ihrem Build-Tool oder anderen Tools erstellen, für die das Verzeichnis erforderlich ist ;/
– Benutzer9903
22. Juli 2013 um 17:06 Uhr
@tamouse, @omouse: A .gitignore
Datei mit zwei Zeilen: *
und !.gitignore
ist mehr als genug Klarheit, um zu vermitteln, was vor sich geht. Wenn mehr Ausarbeitung erforderlich ist, fügen Sie einen Kommentar am Anfang der Datei hinzu, indem Sie das verwenden #
Syntax.
– Juritsch
2. September 2013 um 16:32 Uhr
Es ist erwähnenswert, dass das beliebte Rails-Framework diese Konvention leicht geändert hat .keep
Dateien statt .gitkeep
um diese leeren Ordner beizubehalten, da Git nicht das einzige Versionsverwaltungssystem ist, das leere Ordner nicht verfolgt. Weitere Details hier: github.com/rails/rails/issues/2800
– Claudio Floreani
25. November 2013 um 9:43 Uhr
jas
.gitkeep
ist nur ein Platzhalter. Eine Dummy-Datei, damit Git das Verzeichnis nicht vergisst, da Git nur Dateien verfolgt.
Wenn Sie ein leeres Verzeichnis wünschen und sicherstellen möchten, dass es für Git „sauber“ bleibt, erstellen Sie eine .gitignore
enthält die folgenden Zeilen innerhalb:
# .gitignore sample
# Ignore all files in this dir...
*
# ... except for this one.
!.gitignore
Wenn Sie möchten, dass nur ein Dateityp für Git sichtbar ist, finden Sie hier ein Beispiel, wie Sie alles herausfiltern können, außer .gitignore
und alles .txt
Dateien:
# .gitignore to keep just .txt files
# Filter everything...
*
# ... except the .gitignore...
!.gitignore
# ... and all text files.
!*.txt
Ich selbst mag diese Praxis. Wenn in diesen Verzeichnissen Quellcode vorhanden wäre, wäre .gitkeep nicht erforderlich, und im Allgemeinen handelt es sich um Temp-/Cache-/Benutzerinhalte, die während des Testens ohnehin generiert würden, sodass Sie diese Dateien auch .gitignorieren müssten
– Christian
28. August 2012 um 11:37 Uhr
Warum brauchst du !
vor dem .gitignore
? Ist das, um dem Punkt zu entkommen?
– Wille
5. Oktober 2012 um 21:37 Uhr
@ Will – Nein, die !
negiert den folgenden Teil, wie es normalerweise in der Programmierung der Fall ist.
– sjas
8. Oktober 2012 um 15:02 Uhr
Es besteht keine Notwendigkeit zu setzen !.gitignore
Fügen Sie in einer Git-ignorieren-Datei entweder die Datei hinzu und bearbeiten Sie sie dann, oder erzwingen Sie das Hinzufügen mit dem entsprechenden Inhalt (“*”, um alles zu ignorieren, oder nichts, um einfach sicherzustellen, dass der Ordner vorhanden ist). weiteres Beispiel.
– AD7sechs
13. Mai 2014 um 14:26 Uhr
Aus deinem Link: 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 energische Hinzufügung vornehmen, können Sie es vergessen. In trivialen Fällen kein Problem, aber wenn es sich um eine größere Datei handelt, könnten Sie sich ärgern. Verwenden !.gitignore
verhindert, dass Sie sich in den Fuß schießen. Ich bevorzuge es, nachdem ich mich in der Vergangenheit verbrannt habe.
– sjas
13. Mai 2014 um 14:44 Uhr
Jim Munro
.gitignore
ist eine Textdatei, die eine Liste von Dateien in Ihrem Verzeichnis enthält, die Git ignoriert oder nicht im Repository hinzufügt/aktualisiert.
.gitkeep
Da Git leere Verzeichnisse aus einem Repository entfernt oder nicht hinzufügt, ist .gitkeep eine Art Hack (ich glaube nicht, dass es offiziell als Teil von Git bezeichnet wird), um leere Verzeichnisse im Repository zu halten.
Mach einfach ein touch /path/to/emptydirectory/.gitkeep
um die Datei hinzuzufügen, und Git kann dieses Verzeichnis nun im Repository verwalten.
Sie können so viele haben .gitignore
s wie Sie möchten, wenn Sie nicht jedes Mal den vollständigen Pfad zu jedem Ordner angeben möchten.
– sjas
17. September 2012 um 17:54 Uhr
Ich versuche, leere Verzeichnisse aufzulisten .gitkeep
Datei, aber leere Verzeichnisse werden nicht verfolgt, nur Ordner verfolgen wo .gitkeep
Datei existiert. warum so?
– Pardeep Jain
14. Februar 2018 um 6:46 Uhr
.gitkeep funktioniert nicht wie .gitignore. Es ist keine Liste von Verzeichnissen, die man führen muss. Es ist lediglich eine leere Datei, die sich in dem Verzeichnis befindet, das Sie behalten möchten. Es kann beliebig benannt werden, .keep usw. Sie können also ein Verzeichnis wie /foo/bar haben und die gitkeep-Datei wird /foo/bar/.gitkeep sein
– Jim Munro
19. Februar 2018 um 4:48 Uhr
@sjas wie würde es mehrere geben .gitignore
s es Ihnen ersparen, jedes Mal den vollständigen Pfad zu jedem Ordner anzugeben? Ich glaube, ich übersehe etwas Offensichtliches.
– Willwsharp
14. August 2019 um 14:56 Uhr
@Willwsharp Angenommen, Sie haben /abc/def/somefile. Wenn sich Ihr Git in /abc/ befindet, müssten Sie ./dev/somefile ignorieren. Wenn Sie Ihr Gitgnore in /abc/def platzieren, müssen Sie nur ./somefile ignorieren
– Standard
11. Juli 2020 um 15:19 Uhr
Viele Leute ziehen es vor, einfach zu verwenden .keep
da die Konvention nichts mit Git zu tun hat.
Dies ist keine Antwort auf die ursprüngliche Frage “Was sind die Unterschiede zwischen .gitignore und .gitkeep?” aber hier zu posten, um den Leuten zu helfen, auf einfache Weise den Überblick über leere Verzeichnisse zu behalten. Um ein leeres Verzeichnis zu verfolgen und das zu wissen .gitkeep
ist kein offizieller Teil von git,
füge einfach ein leeres hinzu (ohne Inhalt) .gitignore
Datei darin.
Also zB wenn du hast /project/content/posts
und manchmal posts
Verzeichnis könnte leer sein, dann leere Datei erstellen /project/content/posts/.gitignore
ohne Inhalt, um dieses Verzeichnis und seine zukünftigen Dateien in Git zu verfolgen.
Ich bin nicht einverstanden. Die Tatsache, dass .gitkeep kein offizieller Teil von git ist, ist absolut kein Grund, .gitignore zu missbrauchen. Eine leere .gitignore ist verwirrend und bedeutungslos. Wobei ein leeres .gitkeep eindeutig ein Platzhalter ist, um das Verzeichnis in Git zu “behalten”.
– Phil
12. April 2021 um 17:45 Uhr
Ich glaube, das ist gar nicht deine Sichtweise
– Sohel Ahmed Mesaniya
13. April 2021 um 4:31 Uhr
Um es klar zu sagen: Ihr Standpunkt ist, dass es in Ordnung (oder eine gute Idee) ist, den Beamten zu verlängern .gitignorieren Dateizweck so, dass es als Platzhalter dient, wenn es leer ist? Wie gesagt, dem kann ich nicht mehr widersprechen. Vielleicht könnten Sie Ihre Antwort bearbeiten, um Ihre Argumentation zu erläutern oder Ihren Standpunkt zu untermauern? Im Moment ist es eine unbegründete Antwort und verdient voll und ganz meine Ablehnung.
– Phil
14. April 2021 um 11:07 Uhr
Ah, mir ist klar, dass ich in einen Konventionskrieg hineingestolpert bin. Ich habe gerade die Kommentare zur akzeptierten Antwort bemerkt. Vielleicht gibt es hier zwei Konventionen, und vielleicht hat jede ihre eigene Anzahl von Anhängern, so dass die Popularität unterschiedlich ist. Ich würde immer noch gerne die Argumente FÜR diese Convention hören, weil ich vielleicht meine Meinung ändern werde.
– Phil
14. April 2021 um 11:18 Uhr
Ich sehe das. Aber können Sie in den offiziellen Git-Dokumenten zeigen, wo es Leute anweist, leere .gitignore-Dateien hinzuzufügen?
– Phil
19. April 2021 um 23:21 Uhr
Ich bin nicht einverstanden. Die Tatsache, dass .gitkeep kein offizieller Teil von git ist, ist absolut kein Grund, .gitignore zu missbrauchen. Eine leere .gitignore ist verwirrend und bedeutungslos. Wobei ein leeres .gitkeep eindeutig ein Platzhalter ist, um das Verzeichnis in Git zu “behalten”.
– Phil
12. April 2021 um 17:45 Uhr
Ich glaube, das ist gar nicht deine Sichtweise
– Sohel Ahmed Mesaniya
13. April 2021 um 4:31 Uhr
Um es klar zu sagen: Ihr Standpunkt ist, dass es in Ordnung (oder eine gute Idee) ist, den Beamten zu verlängern .gitignorieren Dateizweck so, dass es als Platzhalter dient, wenn es leer ist? Wie gesagt, dem kann ich nicht mehr widersprechen. Vielleicht könnten Sie Ihre Antwort bearbeiten, um Ihre Argumentation zu erläutern oder Ihren Standpunkt zu untermauern? Im Moment ist es eine unbegründete Antwort und verdient voll und ganz meine Ablehnung.
– Phil
14. April 2021 um 11:07 Uhr
Ah, mir ist klar, dass ich in einen Konventionskrieg hineingestolpert bin. Ich habe gerade die Kommentare zur akzeptierten Antwort bemerkt. Vielleicht gibt es hier zwei Konventionen, und vielleicht hat jede ihre eigene Anzahl von Anhängern, so dass die Popularität unterschiedlich ist. Ich würde immer noch gerne die Argumente FÜR diese Convention hören, weil ich vielleicht meine Meinung ändern werde.
– Phil
14. April 2021 um 11:18 Uhr
Ich sehe das. Aber können Sie in den offiziellen Git-Dokumenten zeigen, wo es Leute anweist, leere .gitignore-Dateien hinzuzufügen?
– Phil
19. April 2021 um 23:21 Uhr