Ich bin ein neuer Benutzer gitund starte ein neues Projekt. Ich habe eine Reihe von Punktedateien, die ich ignorieren möchte. Gibt es einen Ignorierbefehl für gitwie für svn?
Bearbeiten Sie eine .gitignoreDatei an der entsprechenden Stelle in der Arbeitskopie. Sie sollten dies dann hinzufügen .gitignoreund festschreiben. Jeder, der dieses Repo klont, wird diese Dateien ignorieren.
Beachten Sie, dass nur Dateinamen, die mit beginnen /, relativ zum Verzeichnis sind, .gitignorein dem sie sich befinden. Alles andere stimmt mit Dateien in einem beliebigen Unterverzeichnis überein.
Sie können auch bearbeiten .git/info/exclude, um bestimmte Dateien nur in dieser einen Arbeitskopie zu ignorieren. Die .git/info/excludeDatei wird nicht festgeschrieben und gilt daher nur lokal in dieser einen Arbeitskopie.
Sie können auch eine globale Datei mit Mustern einrichten, mit denen Sie ignorieren können git config --global core.excludesfile . Dies gilt lokal für alle Git-Arbeitskopien auf demselben Benutzerkonto.
Führen git help gitignoreSie den Text aus und lesen Sie ihn, um Einzelheiten zu erfahren.
Das Fehlen eines einfachen Ignorierbefehls scheint für das Git-Team ein solches Versehen zu sein.
JCollum
4
@jcollum Auf den ersten Blick ist dies der Fall, aber die Einfachheit des Aliasing eines Befehls zum Hinzufügen neuer Befehle UND die Komplexität des Erstellens eines Befehls und des Durcharbeitens aller Randfälle / Fallstricke / potenziellen Probleme beim Bearbeiten einer Textdatei ist auch sinnvoll Benutzer. Ich fühle mich in Konflikt geraten, weil ich Ihnen sowohl zustimme als auch nicht zustimme.
Wenn ich also git ignore "index.html" verwende, wird diese Datei ignoriert?
John Andrews
Ist der Befehl -t noch anwendbar? Wenn ich es ausführe, fügt es nur das -t und die Vorlage hinzu, die ich versuche, in die git-Ignorierdatei
einzufügen
50
Unter Linux / Unix können Sie mit dem echoBefehl Dateien an die .gitignore-Datei anhängen . Wenn Sie beispielsweise alle .svnOrdner ignorieren möchten , führen Sie dies im Stammverzeichnis des Projekts aus:
In Git Bash unter Windows musste ich ein vorangestelltes /und nachfolgendes '\' hinzufügen (um eine neue Zeile zu erstellen), wie z. B. echo /nbproject/project.properties\ >> .gitignoreund echo /nbproject/project.xml\ >> .gitignore.
Ryan
15
Sie haben zwei Möglichkeiten, Dateien zu ignorieren:
.gitignoreIn einem beliebigen Ordner werden die Dateien ignoriert, die in der Datei für diesen Ordner angegeben sind. Die Verwendung von Platzhaltern ist möglich.
.git/info/excludeEnthält das globale Ignoriermuster, ähnlich der global-ignoresKonfigurationsdatei für Subversionen.
Beachten Sie, dass Muster in .gitignoreDateien, die kein '/' enthalten, rekursiv abgeglichen werden (dh auch in allen Unterverzeichnissen des Verzeichnisses, in dem sich die .gitignoreDatei befindet), im Gegensatz zu den svn:ignoreVerzeichniseigenschaften in Subversion.
Jakub Narębski
6
Ich hoffe es ist nicht zu spät.
Wenn Sie unter Windows arbeiten, können Sie einfach Folgendes tun, um eine Gitignore- Datei zu erstellen
Verwenden Sie das nicht, wenn Sie bereits eine .gitignore-Datei haben, diese wird überschrieben! Um anhängen , die Datei zu ignorieren, verwenden Sie diese: echo ignore.ext >> .gitignore
TomEberhard
Sie haben Recht, es ist ratsam, nur zu verwenden, wenn die .gitignore-Datei nicht vorhanden ist. Verwenden Sie besser "Notepad .gitignore". Wenn Sie eine .gitignore-Datei haben, wird diese geöffnet. Wenn Sie dies nicht tun, wird eine erstellt, und Sie können dann alle Dateien aus dem Editor hinzufügen. 1 Datei / Ordner pro Zeile
Nesar
3
Erstellen Sie eine Datei mit dem Namen .gitignore im Stammverzeichnis Ihres Repositorys. In dieser Datei geben Sie den relativen Pfad zu jeder Datei, die Sie ignorieren möchten, in eine einzelne Zeile ein. Sie können den *Platzhalter verwenden.
Mit den bereits bereitgestellten Antworten können Sie Ihren eigenen git ignoreBefehl mithilfe eines Alias ausführen . Fügen Sie dies entweder zu Ihrer ~ / .gitconfig-Datei hinzu:
ignore = !sh -c 'echo $1 >> .gitignore' -
Oder führen Sie diesen Befehl über die (* nix) -Shell Ihrer Wahl aus:
Sie können ebenfalls einen git excludeBefehl erstellen, indem Sie ihn oben ignoredurch excludeund .gitignoremit ersetzen .git/info/exclude.
(Wenn Sie den Unterschied zwischen diesen beiden Dateien noch nicht verstanden haben, nachdem Sie die Antworten hier gelesen haben, lesen Sie diese Frage .)
für Namen, die nicht in der Arbeitskopie oder im Repo enthalten sind:
echo /globpattern >> .gitignore
oder für eine vorhandene Datei (Befehlszeile vom Typ sh):
echo /$(ls -1 file) >> .gitignore # I use tab completion to select the file to be ignored
git rm -r --cached file # if already checked in, deletes it on next commit
Es ist nützlich, eine vollständige Gitignore- Datei für Ihr Projekt zu definieren . Die Belohnung ist die sichere Verwendung der bequemen --alloder -aFlagge für Befehle wie addund commit.
Erwägen Sie außerdem, eine globale ~ / .gitignore- Datei für häufig ignorierte Muster zu definieren, z. B. *~
temporäre Dateien, die von Emacs erstellt wurden.
Und dann können Sie einfach gigefolgt von allen Plattform- / Umgebungselementen eingeben, für die Sie Gitignore-Kriterien benötigen.
Beispiel!
Nehmen wir an, Sie arbeiten an einem Knotenprojekt, das Grunzen enthält, und Sie verwenden Webstorm unter Linux. Dann möchten Sie möglicherweise Folgendes eingeben: gi linux,webstorm,node,grunt > .gitignore(um eine brandneue Datei zu erstellen)
oder gi linux,webstorm,node,grunt >> .gitignore(um die neuen Regeln an eine vorhandene Datei anzuhängen / hinzuzufügen )
Antworten:
Es gibt keinen speziellen
git ignore
Befehl.Bearbeiten Sie eine
.gitignore
Datei an der entsprechenden Stelle in der Arbeitskopie. Sie sollten dies dann hinzufügen.gitignore
und festschreiben. Jeder, der dieses Repo klont, wird diese Dateien ignorieren.Beachten Sie, dass nur Dateinamen, die mit beginnen
/
, relativ zum Verzeichnis sind,.gitignore
in dem sie sich befinden. Alles andere stimmt mit Dateien in einem beliebigen Unterverzeichnis überein.Sie können auch bearbeiten
.git/info/exclude
, um bestimmte Dateien nur in dieser einen Arbeitskopie zu ignorieren. Die.git/info/exclude
Datei wird nicht festgeschrieben und gilt daher nur lokal in dieser einen Arbeitskopie.Sie können auch eine globale Datei mit Mustern einrichten, mit denen Sie ignorieren können
git config --global core.excludesfile
. Dies gilt lokal für alle Git-Arbeitskopien auf demselben Benutzerkonto.Führen
git help gitignore
Sie den Text aus und lesen Sie ihn, um Einzelheiten zu erfahren.quelle
Ein sehr nützlicher Befehl zum Ignorieren von Git kommt mit den fantastischen tj / git-Extras .
Hier einige Anwendungsbeispiele:
Listen Sie alle derzeit ignorierten Muster auf
Fügen Sie ein Muster hinzu
Fügen Sie eine der Vorlagen von gitignore.io hinzu
git-extras bietet viele weitere nützliche Befehle. Auf jeden Fall einen Versuch wert.
quelle
Unter Linux / Unix können Sie mit dem
echo
Befehl Dateien an die .gitignore-Datei anhängen . Wenn Sie beispielsweise alle.svn
Ordner ignorieren möchten , führen Sie dies im Stammverzeichnis des Projekts aus:quelle
/
und nachfolgendes '\' hinzufügen (um eine neue Zeile zu erstellen), wie z. B.echo /nbproject/project.properties\ >> .gitignore
undecho /nbproject/project.xml\ >> .gitignore
.Sie haben zwei Möglichkeiten, Dateien zu ignorieren:
.gitignore
In einem beliebigen Ordner werden die Dateien ignoriert, die in der Datei für diesen Ordner angegeben sind. Die Verwendung von Platzhaltern ist möglich..git/info/exclude
Enthält das globale Ignoriermuster, ähnlich derglobal-ignores
Konfigurationsdatei für Subversionen.quelle
.gitignore
Dateien, die kein '/' enthalten, rekursiv abgeglichen werden (dh auch in allen Unterverzeichnissen des Verzeichnisses, in dem sich die.gitignore
Datei befindet), im Gegensatz zu densvn:ignore
Verzeichniseigenschaften in Subversion.Ich hoffe es ist nicht zu spät.
Wenn Sie unter Windows arbeiten, können Sie einfach Folgendes tun, um eine Gitignore- Datei zu erstellen
Um .gitignore zu bearbeiten, können Sie ausführen
quelle
Erstellen Sie eine Datei mit dem Namen .gitignore im Stammverzeichnis Ihres Repositorys. In dieser Datei geben Sie den relativen Pfad zu jeder Datei, die Sie ignorieren möchten, in eine einzelne Zeile ein. Sie können den
*
Platzhalter verwenden.quelle
Mit den bereits bereitgestellten Antworten können Sie Ihren eigenen
git ignore
Befehl mithilfe eines Alias ausführen . Fügen Sie dies entweder zu Ihrer ~ / .gitconfig-Datei hinzu:Oder führen Sie diesen Befehl über die (* nix) -Shell Ihrer Wahl aus:
Sie können ebenfalls einen
git exclude
Befehl erstellen, indem Sie ihn obenignore
durchexclude
und.gitignore
mit ersetzen.git/info/exclude
.(Wenn Sie den Unterschied zwischen diesen beiden Dateien noch nicht verstanden haben, nachdem Sie die Antworten hier gelesen haben, lesen Sie diese Frage .)
quelle
für Namen, die nicht in der Arbeitskopie oder im Repo enthalten sind:
oder für eine vorhandene Datei (Befehlszeile vom Typ sh):
quelle
Es ist nützlich, eine vollständige Gitignore- Datei für Ihr Projekt zu definieren . Die Belohnung ist die sichere Verwendung der bequemen
--all
oder-a
Flagge für Befehle wieadd
undcommit
.Erwägen Sie außerdem, eine globale ~ / .gitignore- Datei für häufig ignorierte Muster zu definieren, z. B.
*~
temporäre Dateien, die von Emacs erstellt wurden.quelle
Dazu müssen Sie Git-Extras installieren. Sie können es in Ubuntu mit apt-get installieren.
Dann können Sie den Befehl git ignore verwenden.
quelle
brew install git-extras
.Sie können auch Joe Blaus gitignore.io verwenden
Entweder über die Webschnittstelle https://www.gitignore.io/
Wenn Sie das CLI-Tool installieren, ist dies sehr einfach und schnell. Geben Sie einfach Folgendes in Ihr Terminal ein:
Linux:
echo "function gi() { curl -L -s https://www.gitignore.io/api/\$@ ;}" >> ~/.bashrc && source ~/.bashrc
OSX:
echo "function gi() { curl -L -s https://www.gitignore.io/api/\$@ ;}" >> ~/.bash_profile && source ~/.bash_profile
Und dann können Sie einfach
gi
gefolgt von allen Plattform- / Umgebungselementen eingeben, für die Sie Gitignore-Kriterien benötigen.Beispiel!
Nehmen wir an, Sie arbeiten an einem Knotenprojekt, das Grunzen enthält, und Sie verwenden Webstorm unter Linux. Dann möchten Sie möglicherweise Folgendes eingeben:
gi linux,webstorm,node,grunt > .gitignore
(um eine brandneue Datei zu erstellen)oder
gi linux,webstorm,node,grunt >> .gitignore
(um die neuen Regeln an eine vorhandene Datei anzuhängen / hinzuzufügen )bam, du bist gut zu gehen
quelle