Ich habe gerade eine git init
Wurzel meines neuen Projekts erstellt.
Dann habe ich eine .gitignore
Datei erstellt.
Wenn ich jetzt tippegit status
, wird die .gitignore- Datei in der Liste der nicht verfolgten Dateien angezeigt . Warum ist das so?
git
version-control
dvcs
gitignore
Jacques René Mesrine
quelle
quelle
git add self && git commit -m "-1 for reverting existential depression" && git remote rm HEAD
how to gitignore .gitinore file
und die Frage und die akzeptierte Antwort haben nichts mit dem Titel zu tun. Titel könnte verbessert werden.Antworten:
Die
.gitignore
Datei sollte sich in Ihrem Repository befinden, also sollte sie tatsächlich hinzugefügt und festgeschrieben werden, wie vorgeschlagengit status
. Es muss Teil des Repository-Baums sein, damit Änderungen daran zusammengeführt werden können und so weiter.Fügen Sie es also Ihrem Repository hinzu, es sollte nicht gitignored werden.
Wenn Sie wirklich möchten, können Sie
.gitignore
der.gitignore
Datei hinzufügen , wenn Sie nicht möchten, dass sie festgeschrieben wird. In diesem Fall ist es jedoch wahrscheinlich besser, die Ignorierdaten zu.git/info/exclude
einer speziellen lokalen Checkout-Datei hinzuzufügen, die genau wie .gitignore funktioniert, jedoch nicht im "Git-Status" angezeigt wird, da sie sich im.git
Ordner befindet.Siehe auch https://help.github.com/articles/ignoring-files
quelle
Wenn Sie die Liste der ignorierten Dateien außerhalb Ihres Git-Baums speichern möchten, können Sie die Datei .git / info / exclude verwenden. Es wird nur auf Ihre Kaufabwicklung des Repos angewendet.
quelle
~/.gitignore
damit sie für jedes Repository, an dem ich arbeite, ignoriert werden.git update-index --assume-unchanged <file>
Nachverfolgung von Änderungen beenden, ohne Ihr Repo zu ändern. Dies ist sehr nützlich bei großen gemeinsam genutzten Projekten, bei denen Sie lokale Änderungen vornehmen müssen, aber niemand anderes möchte, dass Ihre Inhalte für das Repo verwendet werden. Siehe blog.pagebakers.nlSie könnten tatsächlich eine Zeile
.gitignore
in Ihre.gitignore
Datei einfügen. Dies würde dazu führen, dass die.gitignore
Datei von git ignoriert wird. Ich halte das eigentlich nicht für eine gute Idee. Ich denke, die Ignorierdatei sollte versioniert und nachverfolgt werden. Ich werde dies nur der Vollständigkeit halber veröffentlichen.quelle
git rm --cached .gitignore
Sie können auch eine globale Benutzer-Git-
.gitignore
Datei haben, die automatisch auf alle Ihre Repos angewendet wird. Dies ist nützlich für IDE- und Editor-Dateien (z. B.swp
und*~
Dateien für Vim). Ändern Sie die Verzeichnispositionen entsprechend Ihrem Betriebssystem.Zu Ihrer
~/.gitconfig
Datei hinzufügen:Erstellen Sie eine
~/.gitignore
Datei mit Dateimustern, die ignoriert werden sollen.Speichern Sie Ihre Punktedateien in einem anderen Repo, damit Sie ein Backup haben (optional).
Jedes Mal, wenn Sie ein Repo kopieren, initiieren oder klonen, wird auch Ihre globale Gitignore-Datei verwendet.
quelle
Wenn jemand
.gitignore
Ihrem Repo bereits ein hinzugefügt hat , Sie jedoch einige Änderungen daran vornehmen und diese Änderungen ignorieren möchten, gehen Sie wie folgt vor:git update-index --assume-unchanged .gitignore
Quelle .
quelle
.git/info/excludes
.--assume-unchanged
. Warum ist einer besser als der andere?.git/info/excludes
funktioniert nicht, wenn die Datei bereits verfolgt wird.Nachdem Sie die
.gitignore
Datei hinzugefügt und festgeschrieben haben, wird sie nicht mehr in der Liste "Nicht verfolgte Dateien" angezeigt.quelle
Nur für den Fall, dass jemand anderes den gleichen Schmerz hat, den wir hatten. Wir wollten eine bereits festgeschriebene Datei ausschließen.
Dieser Beitrag war viel nützlicher: zu spät mit .git / info / exclude arbeiten
Um eine Datei zu ignorieren, müssen Sie den Befehl git remove verwenden. Siehe git rm ( http://www.kernel.org/pub/software/scm/git/docs/git-rm.html ).
Sie testen es, indem Sie gehen
git rm --dry-run *.log
(Wenn Sie sagen, Sie wollten alle Protokolldateien ausschließen)
Dadurch wird ausgegeben, was ausgeschlossen wäre, wenn Sie es ausführen würden .
dann
Sie führen es, indem Sie gehen
git rm *.log
(oder welchen Dateinamen Pfad / Ausdruck Sie möchten)
Fügen Sie
*.log
dann Ihrer.gitignore
Datei eine Zeile hinzu .quelle
git status
wenn sie in Zukunft angezeigt werden.Natürlich wird die .gitignore-Datei im Status angezeigt, da sie nicht verfolgt wird und git sie als leckere neue Datei zum Essen ansieht!
Da .gitignore jedoch eine nicht verfolgte Datei ist, ist es ein Kandidat, der von git ignoriert wird, wenn Sie ihn in .gitignore einfügen!
Die Antwort ist also einfach: Fügen Sie einfach die Zeile hinzu:
zu Ihrer .gitignore-Datei!
Und im Gegensatz zu August Antwort, würde ich sagen , dass es nicht , dass die .gitignore Datei sollte in Ihrem Repository sein. Es kommt einfach vor, dass es sein kann , was oft bequem ist. Und es ist wahrscheinlich wahr, dass dies der Grund ist, warum .gitignore als Alternative zu .git / info / exclude erstellt wurde, das nicht die Option hat, vom Repository verfolgt zu werden. In jedem Fall liegt es ganz bei Ihnen, wie Sie Ihre .gitignore-Datei verwenden.
Weitere Informationen finden Sie auf der Manpage zu gitignore (5) auf kernel.org.
quelle
Die Idee ist, projektspezifische Dateien in die
.gitignore
Datei einzufügen und (wie bereits erwähnt) dem Repository hinzuzufügen. Zum Beispiel.pyc
und.o
Dateien, Protokolle, die die Testsuite erstellt, einige Fixtures usw.Für Dateien, die Ihr eigenes Setup erstellt, die jedoch nicht unbedingt für jeden Benutzer
.swp
angezeigt werden (wie Dateien, wenn Sie vim verwenden, versteckte ecplise-Verzeichnisse und dergleichen), sollten Sie.git/info/exclude
(wie bereits erwähnt) verwenden.quelle
Zunächst sollten Sie, wie viele andere bereits sagten,
.gitignore
von Git verfolgt werden (und sollten daher nicht ignoriert werden). Lassen Sie mich erklären, warum.(TL; DR: Festschreiben der
.gitignore
Datei und Verwenden einer globalen.gitignore
Datei, um Dateien zu ignorieren, die von Ihrer IDE oder Ihrem Betriebssystem erstellt wurden.)Git ist, wie Sie wahrscheinlich bereits wissen, ein verteiltes Versionskontrollsystem . Dies bedeutet, dass Sie zwischen verschiedenen Versionen wechseln können (auch wenn die Entwicklung in verschiedene Branchen unterteilt ist) und dass mehrere Entwickler an demselben Projekt arbeiten können.
Obwohl das Verfolgen Ihrer Daten
.gitignore
auch Vorteile bietet, wenn Sie zwischen Snapshots wechseln, ist der wichtigste Grund für das Festschreiben, dass Sie die Datei für andere Entwickler freigeben möchten, die an demselben Projekt arbeiten. Durch das Festschreiben der Datei in Git erhalten andere Mitwirkende die.gitignore
Datei automatisch, wenn sie das Repository klonen, sodass sie sich nicht um das versehentliche Festschreiben einer Datei kümmern müssen, die nicht festgeschrieben werden sollte (z. B. Protokolldateien, Cache-Verzeichnisse, Datenbankanmeldeinformationen) , usw.). Und wenn das Projekt irgendwann.gitignore
aktualisiert wird, können sie diese Änderungen einfach übernehmen, anstatt die Datei manuell bearbeiten zu müssen.Natürlich gibt es einige Dateien und Ordner, die Sie ignorieren möchten, die jedoch spezifisch für Sie sind und nicht für andere Entwickler gelten. Diese sollten jedoch nicht im Projekt enthalten sein
.gitignore
. Es gibt zwei weitere Stellen, an denen Sie Dateien und Ordner ignorieren können:.gitignore
abgelegt werden . Der Vorteil ist, dass dies.gitignore
auf alle Repositorys auf Ihrem Computer angewendet wird, sodass Sie dies nicht für jedes Repository wiederholen müssen. Und es wird nicht mit anderen Entwicklern geteilt, da diese möglicherweise ein anderes Betriebssystem und / oder eine andere IDE verwenden..gitignore
noch zum globalen gehören.gitignore
, können mithilfe expliziter Repository-Ausschlüsse inyour_project_directory/.git/info/exclude
ignoriert werden . Diese Datei wird nicht für andere Entwickler freigegeben und ist spezifisch für dieses einzelne Repositoryquelle
.gitignore
.gitignore
funktioniert nur zum Ignorieren von Dateien, die noch nicht von Git verfolgt werden. Das Hinzufügen einer bereits verfolgten Datei.gitignore
verhindert nicht, dass Sie Änderungen an dieser Datei vornehmen. Selbst wenn dies möglich wäre, wie würden Sie die Änderung.gitignore
festschreiben, wenn Git angewiesen wird, sich selbst zu ignorieren?Achten Sie auf das folgende "Problem" Manchmal möchten Sie Verzeichnisse hinzufügen, aber keine Dateien in diesen Verzeichnissen. Die einfache Lösung besteht darin, einen Gitignore mit folgendem Inhalt zu erstellen:
Dies funktioniert einwandfrei, bis Sie feststellen, dass das Verzeichnis nicht hinzugefügt wurde (wie erwartet zu Ihrem Repository. Der Grund dafür ist, dass der .gitignore ebenfalls ignoriert wird und das Verzeichnis daher leer ist. Daher sollten Sie so etwas tun ::
quelle
Dies scheint nur für Ihr aktuelles Verzeichnis zu funktionieren, um
Git
alle Dateien aus dem Repository zu ignorieren.Aktualisieren Sie diese Datei
mit Ihrem Platzhalter oder Dateinamen
quelle
Wenn Sie .gitignore bereits eingecheckt haben und Änderungen daran ignorieren möchten, lesen Sie diese Antwort :
quelle
In meinem Fall möchte ich eine vorhandene Datei ausschließen. Nur das Ändern von .gitignore funktioniert nicht. Ich habe diese Schritte befolgt:
Auf diese Weise habe ich die Datei, die ich ausschließen wollte, aus dem Cache entfernt und nachdem ich sie zu .gitignore hinzugefügt habe .
quelle
Navigieren Sie zum Basisverzeichnis Ihres Git-Repos und führen Sie den folgenden Befehl aus:
Alle Punktedateien werden ignoriert, einschließlich des lästigen .DS_Store, wenn Sie auf einem Mac arbeiten.
quelle
Es ist durchaus möglich, dass ein Endbenutzer möchte, dass Git die Datei ".gitignore" ignoriert, nur weil die von Eclipse erstellten IDE-spezifischen Ordner wahrscheinlich nicht mit NetBeans oder einer anderen IDE identisch sind. Um die IDE des Quellcodes antagonistisch zu halten, ist es einfach, ein benutzerdefiniertes Git zu ignorieren, das nicht für das gesamte Team freigegeben ist, da einzelne Entwickler möglicherweise unterschiedliche IDEs verwenden.
quelle
.gitignore
geht es darum, andere Dateien zu ignorieren . Bei git geht es um Dateien, also geht es darum, Dateien zu ignorieren. Da git jedoch Dateien bearbeitet, muss diese Datei als Mechanismus zum Auflisten der anderen Dateinamen vorhanden sein.Wenn es genannt
.the_list_of_ignored_files
würde, könnte es etwas offensichtlicher sein.Eine Analogie ist eine Liste von Aufgaben, die Sie NICHT ausführen möchten. Wenn Sie sie nicht irgendwo auflisten, handelt es sich um eine Art Aufgabenliste, von der Sie nichts wissen.
quelle
Ich denke, dass es Situationen gibt, in denen das Ignorieren des .gitignore sehr nützlich ist. Zum Beispiel, wenn mehrere Teams oder ein großes Team an derselben Codebasis arbeiten. In diesem Fall müssen Sie bestimmte Konventionen haben. Eine dieser Konventionen betrifft das, was beim Git Repo ignoriert wird. In der Regel werden von IDE oder Betriebssystem erstellte Dateien und Verzeichnisse, einige generierte Protokolle usw. ignoriert.
Es gibt jedoch eine Kraft, die dazu neigt, unkonventionelle Änderungen an der
.gitignore
Datei vorzunehmen . Die.gitignore
Datei kann von einer verantwortungslosen Person, aus Versehen, von einem verwendeten Werkzeug oder in einem anderen Fall weiter geändert werden.Um dem entgegenzuwirken, können wir wie folgt vorgehen:
.gitignore
Datei wird auf diese Weise " versiegelt ".Die " versiegelte "
.gitignore
Datei kann nur lokal geändert werden, ohne dass diese Änderungen an andere Mitglieder des Teams weitergegeben werden. Wenn jedoch eine Änderung im gesamten Team weitgehend vereinbart ist, ist es möglich, sie zu "entsiegeln", zu ändern und dann erneut zu "versiegeln". Das kann nicht versehentlich gemacht werden, nur absichtlich.Leider können Sie nicht zu 100% vor der Dummheit geschützt werden, aber auf diese Weise haben Sie alles getan, um zu verhindern, dass dumme Dinge passieren.
Wenn Sie ein relativ kleines Team mit sehr guten Fachleuten haben, wäre dies nicht wichtig, aber selbst diese Leute würden es begrüßen, wenn sie sich weniger Sorgen machen müssten.
Die Verwendung
.git/info/exclude
ist cool, wenn Sie nichts an den Infrastruktureinstellungen ändern können, sondern nur Ihre eigenen a ** abdecken, um keinen Fehler zu machen.Unter dem Gesichtspunkt, was richtig und was falsch ist, stimme ich dafür, dass .gitignore in die
.gitignore
Datei aufgenommen wird, damit jeder die Freiheit hat, vor Ort zu tun, was er will, aber nicht in andere einzudringen.quelle
Ich fand, dass der beste Ort, um ein Ignorieren der lästigen
.DS_Store
Dateien einzurichten, in der.git/info/exclude
Datei ist.IntelliJ scheint dies automatisch zu tun, wenn Sie ein Git-Repository darin einrichten.
quelle