Warum ignoriert Git Dateien, die nicht in der .gitignore-Datei enthalten sind?

Lesezeit: 5 Minuten

Benutzeravatar von Ian Hunter
Ian Jäger

Ich habe ein Git-Repository, das Bilddateien sowie einige andere Dateien ignoriert, aber meine .gitignore Datei hat nur das Ignorieren von a config.php Datei. Gibt es irgendwo eine globale Ignore-Datei, die ich anscheinend nicht finden kann? Ich muss Dateien angeben, um sie jetzt hinzuzufügen, und es gibt mir diese Warnung:

Die folgenden Pfade werden von einer Ihrer .gitignore-Dateien ignoriert.

Der Inhalt meiner ~/.gitconfig Datei sind nur meine E-Mail-Adresse.

  • Siehe auch: stackoverflow.com/questions/12144633/…

    – krlmlr

    12. Juni 2018 um 9:06 Uhr


Benutzeravatar von kenorb
kenorb

git check-ignore

Verwenden git check-ignore Befehl zum Debuggen Ihrer Gitignore-Datei (Dateien ausschließen).

Zum Beispiel:

$ git check-ignore -v config.php
.gitignore:2:src    config.php

Die obige Ausgabe enthält Details zum übereinstimmenden Muster (falls vorhanden) für jeden angegebenen Pfadnamen (einschließlich Zeile).

Vielleicht wird also nicht Ihre Dateiendung ignoriert, sondern das ganze Verzeichnis.

Das zurückgegebene Format ist:

<source> <COLON> <linenum> <COLON> <pattern> <HT> <pathname>

Oder verwenden Sie den folgenden Befehl, um Ihre zu drucken .gitignore im Benutzer-HOME- und Repository-Ordner:

cat ~/.gitignore "$(git rev-parse --show-toplevel)"/.gitignore "$(git rev-parse --show-toplevel)"/.git/info/exclude

Alternativ verwenden git add -f was das Hinzufügen ansonsten ignorierter Dateien ermöglicht.

Sehen: man gitignore, man git-check-ignore für mehr Details.

Syntax

git check-ignore [options] Pfadname…​

git check-ignore [options] –stdin

  • Dies ist viel besser als die akzeptierte Antwort. Nichts für ungut, aber das hat mir den Tag gerettet. Danke Kenorb.

    – luanjunyi

    4. August 2015 um 21:46 Uhr

  • Verdient mehr Upvotes. Ich habe herausgefunden, dass ein seltsames Gitignore in einigen /vendor/-Ordnern Probleme mit der neuesten Git-Version verursacht hat.

    – Manuel Arwed Schmidt

    5. September 2015 um 20:50 Uhr

  • Dieser hat mich heute gerettet … es scheint, dass Visual Studio eine Datei mit dem Namen gitignore_global.txt im Dokumentenordner des Benutzers erstellt hat, und dies hat Dateien ignoriert, die ich nicht (un)ignorieren konnte

    – Samuel

    18. November 2015 um 23:58 Uhr

  • Hat mein Problem perfekt gelöst. Einige Muster sind nicht leicht mit dem Auge zu erkennen!!

    – Willa

    15. September 2016 um 13:27 Uhr

  • Deine Antwort hat mir sehr geholfen. Ich werde von nun an oben in meinen Gitignore-Dateien zwei Kommentare haben: # Git is ignoring files that aren't in gitignore gefolgt von der URL zu dieser Antwort.

    – Karl

    13. November 2021 um 12:04 Uhr

Es könnte gut sein zu wissen, dass Ihre Git-Konfiguration eine core.excludes-Datei enthalten kann, die ein Pfad zu einer Datei mit zusätzlichen Mustern ist, die ignoriert werden. Sie können herausfinden, ob Sie eine solche Konfiguration haben, indem Sie Folgendes ausführen (im problematischen Git-Repo):

git config core.excludesfile

Wenn ein Dateipfad gedruckt wird, sehen Sie sich den Inhalt dieser Datei an, um weitere Informationen zu erhalten.

In meinem Fall habe ich git über eine alte Version von installiert boxen die das Muster ‘Icon?’ Das hat mir in meinem Fall die in dieser Frage erwähnte Warnung für Ordnersymbole gegeben (ich befinde mich in einem Dateisystem, bei dem die Groß- und Kleinschreibung nicht berücksichtigt wird, weshalb Icon? mit Symbolen übereinstimmt).

  • Das war tatsächlich mein Problem. Ich bin mir nicht sicher, wie oder wann diese Datei bearbeitet wird, aber die Datei, die ich wollte, war darin aufgeführt

    – Toxaq

    26. Februar 2014 um 6:06 Uhr

  • Danke, du hast mir Stunden purer Qual erspart. In meinem Fall war es die Installation von Source Tree (ein Tool zur Visualisierung von Git-Repos), das unlogischerweise im Dokumentenordner eine gitignore_global.txt erstellte, die viele Ausschlüsse enthielt.

    – Mechanisches Objekt

    27. November 2014 um 23:58 Uhr

  • Ich hatte das gleiche verdammt Icon? ignoriert werden.

    – Justin Skiles

    10. Dezember 2015 um 1:25 Uhr

  • Dies war bei mir der Fall. Hatte einige Regeln in der globalen Ignore-Datei. Danke für den Tipp +1

    – Wahnsinn

    4. Oktober 2016 um 10:23 Uhr

  • Ich hatte *.json in meinem globalen Ignorieren – sprechen Sie über einen Albtraum – danke!

    – Jason Perfetto

    2. Januar 2020 um 15:10 Uhr

Benutzeravatar von gahooa
gahooa

Guck dir diese an:

  1. Haben Sie nach anderen .gitignore-Dateien gesucht, da es viele davon geben kann?

  2. Sehen Sie sich auch REPO/.git/config an, um zu sehen, ob dort etwas ist.

  3. Repo-Ausschluss Lokale Pro-Repo-Regeln können zur Datei .git/info/exclude in Ihrem Repo hinzugefügt werden. Diese Regeln werden nicht mit dem Repository festgeschrieben, sodass sie nicht mit anderen geteilt werden. Diese Methode kann für lokal generierte Dateien verwendet werden, von denen Sie nicht erwarten, dass andere Benutzer sie generieren, z. B. Dateien, die von Ihrem Editor erstellt wurden.

  • Es gibt keine anderen .gitignore-Dateien im Repository, noch gibt es irgendetwas in der .git/config-Datei, das irgendetwas ignoriert. Wie ist .git/info/exclude konfiguriert?

    – Ian Jäger

    24. Februar 2012 um 19:13 Uhr

  • Es ist nicht klar, warum diese Antwort als beantwortet markiert ist. Wie genau wurde dieses Problem gelöst?

    – Nächster Entwickler

    15. August 2016 um 15:51 Uhr

  • ausschließen war mein Problem. Ich wusste, dass es einen anderen Weg zum Ignorieren gab, den ich in der Vergangenheit benutzt hatte, aber vergessen hatte, wo er war!

    – Chucky

    14. Juni 2017 um 9:05 Uhr

Ich hatte das gleiche Problem – ein Verzeichnis wurde von Git mit diesem Fehler ignoriert:

➭ git add app/views/admin/tags/
The following paths are ignored by one of your .gitignore files:
app/views/admin/tags
Use -f if you really want to add them.
fatal: no files added

Ich fand schließlich heraus, dass mein Problem eine Linie in meinem war ~/.gitignore_global:

TAGS

was dem Pfad entsprach app/views/admin/tags. Ich habe es behoben, indem ich der globalen Gitignore-Datei einen führenden Schrägstrich hinzugefügt habe

/TAGS

und git fing wieder an, mein Verzeichnis zu verfolgen.

Für mich hatte ich versehentlich einen Platzhalter in meiner Datei ~/.gitignore_global. Vielleicht dort nachschauen?

  • Genau darum ging es mir. Ich hatte *.png dort, keine Ahnung, wie es dorthin kam.

    – Schahar

    26. Januar 2016 um 9:37 Uhr

Benutzeravatar der Community
Gemeinschaft

Noch etwas zum Probieren: Ich hatte ein eigenes Verzeichnis B .git Repository unter meinem Projektverzeichnis A verschachtelt (jedoch nicht als Submodul). Ich habe einige Änderungen an B vorgenommen und wollte daraus ein echtes Submodul machen. Ich glaube, Git A hat B automatisch ignoriert, weil es ein eigenes Repository enthielt (siehe Verschachtelte Git-Repositorys ohne Submodule?). Ich habe den B-Ordner umbenannt und versucht, ihn erneut als Submodul zu klonen, und das brachte mir die irreführende Fehlermeldung „ignoriert von .gitignore“. Die Lösung war löschen .git ausB.

  • Genau darum ging es mir. Ich hatte *.png dort, keine Ahnung, wie es dorthin kam.

    – Schahar

    26. Januar 2016 um 9:37 Uhr

Benutzeravatar von jwogrady
jwogrady

In meinem Fall war es der Schrägstrich in meinem Pfad, der das Problem verursachte …

Nicht arbeiten

/srv/bootstrap/

Arbeit

srv/bootstrap/

1441020cookie-checkWarum ignoriert Git Dateien, die nicht in der .gitignore-Datei enthalten sind?

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

Privacy policy