Ich bin ein neuer Benutzer git
und starte ein neues Projekt. Ich habe eine Reihe von Punktedateien, die ich ignorieren möchte. Gibt es einen Ignorierbefehl für git
wie für svn
?
Ich bin ein neuer Benutzer git
und starte ein neues Projekt. Ich habe eine Reihe von Punktedateien, die ich ignorieren möchte. Gibt es einen Ignorierbefehl für git
wie für svn
?
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.
Ein sehr nützlicher Befehl zum Ignorieren von Git kommt mit den fantastischen tj / git-Extras .
Hier einige Anwendungsbeispiele:
git ignore
git ignore "*.log"
git ignore-io -a rails
git-extras bietet viele weitere nützliche Befehle. Auf jeden Fall einen Versuch wert.
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:
echo .svn/ >> .gitignore
/
und nachfolgendes '\' hinzufügen (um eine neue Zeile zu erstellen), wie z. B. echo /nbproject/project.properties\ >> .gitignore
und echo /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 der global-ignores
Konfigurationsdatei für Subversionen..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 den svn: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
echo name_of_the_file_you_want_to_ignore.extension > .gitignore
Um .gitignore zu bearbeiten, können Sie ausführen
notepad .gitignore
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 ignore
Befehl 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:
git config --global alias.ignore '!sh -c "echo $1 >> .gitignore" -'
Sie können ebenfalls einen git exclude
Befehl erstellen, indem Sie ihn oben ignore
durch exclude
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 .)
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 --all
oder -a
Flagge für Befehle wie add
und 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.
Dazu müssen Sie Git-Extras installieren. Sie können es in Ubuntu mit apt-get installieren.
$ sudo apt-get install git-extras
Dann können Sie den Befehl git ignore verwenden.
$ git ignore file_name
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