Was sind die Unterschiede zwischen .gitignore und .gitkeep?

Lesezeit: 8 Minuten

Was sind die Unterschiede zwischen gitignore und 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.

Was sind die Unterschiede zwischen gitignore und 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

1646634491 651 Was sind die Unterschiede zwischen gitignore und gitkeep
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

1646634492 262 Was sind die Unterschiede zwischen gitignore und gitkeep
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 .gitignores 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 .gitignores 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,

Geben Sie hier die Bildbeschreibung ein

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

963570cookie-checkWas sind die Unterschiede zwischen .gitignore und .gitkeep?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy