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?
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?
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:
.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..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 bestimmtNur 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.
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.
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 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.