1036 Stimmen

Wie kann ich verhindern, dass .gitignore in der Liste der nicht verfolgten Dateien angezeigt wird?

Ich habe gerade eine git init auf der Wurzel meines neuen Projekts.

Dann habe ich eine .gitignore Datei.

Wenn ich jetzt tippe git status , .gitignore Datei erscheint in der Liste der nicht verfolgten Dateien. Warum ist das so?

37voto

Greg Hewgill Punkte 882617

Nachdem Sie die .gitignore und die Datei übertragen, wird sie nicht mehr in der Liste der nicht verfolgten Dateien angezeigt.

git add .gitignore
git commit -m "add .gitignore file"
git status

22voto

Nic Wortel Punkte 10833

Zunächst einmal, wie schon viele andere gesagt haben, Ihre .gitignore sollte von Git verfolgt werden (und sollte daher nicht ignoriert werden). Lassen Sie mich erklären, warum.

(TL;DR: Begehen Sie die .gitignore Datei, und verwenden Sie eine weltweit .gitignore um Dateien zu ignorieren, die von Ihrer IDE oder Ihrem Betriebssystem erstellt wurden)

Git ist, wie Sie wahrscheinlich bereits wissen, eine verteiltes Versionskontrollsystem . Das bedeutet, dass Sie zwischen verschiedenen Versionen hin- und herwechseln können (selbst wenn die Entwicklung in verschiedene Zweige aufgeteilt wurde) und dass mehrere Entwickler an demselben Projekt arbeiten können.

Obwohl die Verfolgung Ihrer .gitignore hat auch Vorteile, wenn Sie zwischen Snapshots wechseln. Der wichtigste Grund für das Commit ist, dass Sie die Datei mit anderen Entwicklern teilen wollen, die an demselben Projekt arbeiten. Wenn Sie die Datei in Git einbinden, erhalten andere Mitwirkende automatisch die .gitignore Datei, wenn sie das Repository klonen, so dass sie sich keine Sorgen machen müssen, dass sie versehentlich eine Datei übertragen, die nicht übertragen werden sollte (z. B. Protokolldateien, Cache-Verzeichnisse, Datenbankanmeldeinformationen usw.). Und wenn das Projekt irgendwann einmal die .gitignore aktualisiert wird, können sie diese Änderungen einfach übernehmen, anstatt die Datei manuell bearbeiten zu müssen.

Natürlich wird es einige Dateien und Ordner geben, die Sie ignorieren möchten, die aber spezifisch für Sie sind und nicht für andere Entwickler gelten. Diese sollten sich jedoch nicht im Projektverzeichnis .gitignore . Es gibt zwei weitere Stellen, an denen Sie Dateien und Ordner ignorieren können:

  • Dateien und Ordner, die von Ihrem Betriebssystem oder Ihrer IDE erstellt werden, sollten in einem weltweit .gitignore . Der Vorteil ist, dass dies .gitignore wird auf alle Repositories auf Ihrem Computer angewendet, so dass Sie dies nicht für jedes Repository wiederholen müssen. Und sie wird nicht mit anderen Entwicklern geteilt, da diese möglicherweise ein anderes Betriebssystem und/oder eine andere IDE verwenden.
  • Dateien, die nicht in das Projektverzeichnis gehören .gitignore noch in der globalen .gitignore kann ignoriert werden durch explizite Repository-Ausschlüsse in your_project_directory/.git/info/exclude . Diese Datei wird nicht mit anderen Entwicklern geteilt und ist nur für dieses eine Repository bestimmt

21voto

Evolve Punkte 8673

Nur für den Fall, dass jemand anderes den gleichen Schmerz hat wie wir. Wir wollten eine Datei ausschließen, die bereits übertragen worden war.

Dieser Beitrag war viel nützlicher: Arbeit mit .git/info/exclude zu spät

Um eine Datei zu ignorieren, müssen Sie eigentlich den Befehl git remove Siehe Git-Rm ( http://www.kernel.org/pub/software/scm/git/docs/git-rm.html )

Sie testen es, indem Sie

*`git rm --dry-run .log`**
(wenn Sie sagen, dass Sie alle Protokolldateien ausschließen möchten)

dies wird ausgeben, was wäre ausgeschlossen, wenn Sie es durchgeführt haben.

dann

Sie führen es aus, indem Sie

*`git rm .log`**
(oder ein beliebiger Dateinamen, Pfad oder Ausdruck)

Dann fügen Sie eine *.log Linie zu Ihrem .gitignore Datei.

18voto

chase Punkte 360

Natürlich wird die .gitignore-Datei im Status angezeigt, weil sie nicht verfolgt wird und Git sie als eine leckere neue Datei ansieht, die man essen kann!

Da es sich bei .gitignore jedoch um eine ungetrackte Datei handelt, ist sie ein Kandidat dafür, von Git ignoriert zu werden, wenn Sie sie in .gitignore ablegen!

Die Antwort ist also einfach: Fügen Sie einfach die Zeile hinzu:

.gitignore # Ignore the hand that feeds!

zu Ihrer .gitignore-Datei!

Und im Gegensatz zu Augusts Antwort sollte ich sagen, dass es nicht daran liegt, dass die .gitignore-Datei debe in Ihrem Repository sein. Es ist einfach so, dass es peut sein, was oft praktisch ist. Und es ist wahrscheinlich wahr, dass dies der Grund ist, warum .gitignore als Alternative zu .git/info/exclude geschaffen wurde, das nicht die Möglichkeit hat, vom Repository verfolgt zu werden. Wie Sie Ihre .gitignore-Datei verwenden, bleibt auf jeden Fall Ihnen überlassen.

Als Referenz finden Sie hier die gitignore(5) Manpage auf kernel.org.

15voto

bayer Punkte 6687

Die Idee ist, Dateien, die spezifisch für Ihr Projekt sind, in die .gitignore Datei und fügen Sie sie (wie bereits erwähnt) dem Repository hinzu. Zum Beispiel .pyc et .o Dateien, Protokolle, die die Testsuite erstellt, einige Fixtures usw.

Für Dateien, die Ihr eigenes Setup erstellt, die aber nicht unbedingt für jeden Benutzer erscheinen (wie .swp Dateien, wenn Sie vim, versteckte Verzeichnisse und dergleichen verwenden), sollten Sie .git/info/exclude (wie bereits erwähnt).

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X