Möchten Sie, dass der Cache-Ordner vollständig aus dem Repository ausgeschlossen wird oder nur dessen Inhalt?
Gareth
1
Ich vermute, dass das OP mehrere Cache-Verzeichnisse hat, deren Inhalt ignoriert werden sollte, aber sicherstellen möchte, dass diese Verzeichnisse für jeden erstellt werden, der das Repository klont.
Mark Longair
@Gareth: Da leere Ordner nicht mit git verfolgt werden, wird der Ordner auch ignoriert, wenn der Inhalt ignoriert wird, nicht wahr?
eckes
3
Ich erwähnte das nur, weil einige Leute (gewöhnlich .gitkeep) versteckte Dateien verwenden , um ein Verzeichnis anzugeben, das aufbewahrt werden soll
Gareth
2
Ist das /am Ende, was es wissen lässt, dass es ein Verzeichnis ist, das es ignorieren sollte?
Charlie Parker
Antworten:
1595
Erstellen Sie eine Datei mit dem Namen .gitignoreim Verzeichnis Ihres Projekts. Ignorieren Sie Verzeichnisse, indem Sie den Verzeichnisnamen in die Datei eingeben (mit einem angehängten Schrägstrich):
In einer Windows-Cmd-Eingabeaufforderung können Sie entweder ".gitignore bearbeiten" oder "Editor .gitignore" verwenden, um die richtige Datei zu erstellen.
Joey Green
44
Sie können auch 'touch .gitignore' in der Windows-Eingabeaufforderung git bash verwenden, um die korrekt benannte Datei zu erstellen, die dann wiederum per Editor oder dergleichen bearbeitet werden kann ...
SGB
39
Oder erstellen Sie einfach eine Datei mit dem Namen .gitignore. mit dem Explorer und bearbeiten Sie es mit dem Editor (der nachfolgende Punkt wird entfernt). Auf diese Weise müssen Sie keine Eingabeaufforderung verwenden.
P. Galbraith
6
Oder Sie können .gitignore vom Terminal aus vim. :)
MollyCat
34
Oder, was überraschenderweise nicht erwähnt wurde, obwohl es der schnellste Weg ist, geben Sie einfach "echo folder_to_ignore >> .gitignore" in die Konsole ein.
Godsmith
205
Standardmäßig wird der Windows Explorer angezeigt, .gitignorewenn der Dateiname tatsächlich lautet .gitignore.txt.
Git wird nicht verwendet .gitignore.txt
Und Sie können die Datei nicht umbenennen .gitignore, da Windows Explorer der Meinung ist, dass es sich um eine Datei vom Typ gitignore ohne Namen handelt.
Nicht-Befehlszeilenlösung:
Sie können eine Datei in ".gitignore" umbenennen. und es wird ".gitignore" erstellt
Das funktioniert? Ich habe den Leuten immer nur gesagt, sie sollen den Editor öffnen und im Dialogfeld Speichern unter den Dateinamen eingeben, der von doppelten Anführungszeichen umgeben ist. So wird er beispielsweise gespeichert, ".gitignore"ohne automatisch eine Erweiterung hinzuzufügen.
Arrowmaster
9
Ordentlich. Das Einschließen einer Nachlaufzeit funktioniert. Der Explorer entfernt den letzten Zeitraum und führt zu einer Datei mit dem Namen ".gitignore". Ich denke, die Anführungszeichenmethode ist sauberer und sorgt weniger für Überraschungen.
Triynko
4
Oder ändern Sie im Dialogfeld Speichern unter den Dateityp in "Alle Dateien ( . )". Windows fügt dann keine Erweiterung hinzu.
OsakaWebbie
5
oder in git bash tippe einfach "touch .gitignore" in deinen Ordner
Rayjax
3
".gitignore."- Das ist ein toller Trick! Ich hatte auch immer Probleme mit .htaccess...
Obmerk Kronen
105
Es scheint, dass es zwei Möglichkeiten gibt, Dateien und Verzeichnisse zu ignorieren:
.gitignore
Platzieren Sie die .gitignoreDatei im Stammverzeichnis Ihres Repositorys neben dem .gitOrdner (stellen Sie unter Windows sicher, dass Sie die wahre Dateierweiterung sehen, und erstellen Sie dann .gitignore.(mit dem Punkt am Ende, um eine leere Dateierweiterung zu erstellen)).
Nehmen Sie die globale Konfiguration vor ~/.gitignore_globalund führen Sie sie aus git config --global core.excludesfile ~/.gitignore_global, um sie Ihrer Git-Konfiguration hinzuzufügen
Hinweis: Zuvor verfolgte Dateien können durch Ausführen nicht mehr verfolgt werden git rm --cached filename
Repository ausschließen - Für lokale Dateien, die nicht freigegeben werden müssen, fügen Sie der Datei einfach das Dateimuster oder -verzeichnis hinzu .git/info/exclude. Diese Regeln sind nicht festgeschrieben, sodass sie von anderen Benutzern nicht gesehen werden . Weitere Informationen finden Sie hier .
Informationen zu Ausnahmen in der Liste der ignorierten Dateien finden Sie in dieser Frage .
gute Arbeit, die darauf hinweist git rm --cached <filename>. Absolut kritisch für Repos, die existierten, BEVOR Sie die.gitignore
MaurerPower
2
git rm --cached <Dateiname> hat das Problem behoben, das ich mit .gitignore hatte :)
JeremyFelix
1
Ja, git rm - zwischengespeicherter Dateiname ist absolut entscheidend. Es machte mich verrückt, da Git immer noch Dateien bereitstellte, von denen ich eindeutig angab, dass sie ignoriert wurden (Gitignore wurde nach dem ersten Festschreiben erstellt). Vielen Dank!
Potaito
1
Mein Problem gelöst. Git verfolgte den Lieferantenordner in meinem Laravel-Repo, obwohl ich den Lieferantenordner in Gitignore hinzugefügt hatte. Vielen Dank.
Jayant
44
Ich hatte einige Probleme beim Erstellen einer Datei im Windows Explorer mit einem .am Anfang.
Eine Problemumgehung bestand darin, in die Befehlsschale zu wechseln und mit "Bearbeiten" eine neue Datei zu erstellen.
oder fügen Sie .am Ende einfach ein Extra hinzu, damit der Explorer nicht mehr denkt, dass .gitignorees sich um die Erweiterung handelt. Dann wird bei der Eingabe dieser nachfolgende Punkt ohne Erweiterung nur gegessen und Sie haben .gitignore TL; DR: Versuchen Sie, ihn zu benennen .gitignore.=> Sie erhalten.gitignore
leerssej
43
Um Git anzuweisen, bestimmte Dateien oder Ordner zu ignorieren, müssen Sie eine .gitignoreDatei erstellen .
Im Windows Explorer müssen Sie jedoch einen Namen für die Datei angeben. Sie können einfach keine Datei mit nur einer Erweiterung erstellen. Der Trick besteht darin, eine leere Textdatei zu erstellen, zur Eingabeaufforderung zu wechseln und den Namen der Datei in zu ändern .gitignore:
ren "New Text Document.txt" .gitignore
Öffnen Sie nun die Datei mit Ihrem bevorzugten Texteditor und fügen Sie die Datei- / Ordnernamen hinzu, die Sie ignorieren möchten. Sie können auch Platzhalter wie diesen verwenden : *.txt.
Oder type nul > .gitignoreum eine leere Datei zu erstellen
Castro Roy
Oder rufen Sie einfach die Datei auf, .gitignore.wenn die Dateierweiterungen nicht in Ihrem Windows Explorer versteckt sind
Vairis
22
Wenn Sie einen Ordner und nicht die darin enthaltenen Dateien verwalten möchten, legen Sie einfach eine ".gitignore" -Datei in den Ordner mit "*" als Inhalt ab. Diese Datei lässt Git alle Inhalte aus dem Repository ignorieren. Aber .gitignorein Ihrem Repository aufgenommen werden.
$ git add path/to/folder/.gitignore
Wenn Sie einen leeren Ordner hinzufügen, erhalten Sie diese Nachricht (.gitignore ist eine versteckte Datei).
The following paths are ignored by one of your .gitignore files:
path/to/folder/.gitignore
Use -f if you really want to add them.
fatal: no files added
Verwenden Sie also "-f", um das Hinzufügen zu erzwingen:
In Windows gibt es einen zusätzlichen Haken mit Schrägstrichen. Ausschließen eines einzelnen Verzeichnisses in .gitignore mit
dir_to_exclude /
wird möglicherweise funktionieren, aber alle Verzeichnisse mit ausschließen
/.
verursacht Probleme, wenn Sie Dateinamen mit Leerzeichen (wie my file.txt) in Ihrem Verzeichnis haben: Git Bash maskiert diese Leerzeichen mit einem Backslash (wie my\ file.txt) und Git für Windows unterscheidet nicht zwischen /und \.
Um alle Verzeichnisse auszuschließen, verwenden Sie besser:
** /
Zwei aufeinanderfolgende Sternchen kennzeichnen den Verzeichnisinhalt.
Auch in Ihrem \.git\infoProjektverzeichnis gibt es eine Ausschlussdatei, die praktisch mit .gitignore(glaube ich) identisch ist . Sie können Dateien und Verzeichnisse hinzufügen, die Sie ignorieren möchten.
Ich mag diesen Ansatz, ich komme einfach nicht mit dem Pfad darin klar, ich möchte einen Ordner im Haupt-Repo ignorieren, wie geht das?
Shimmy Weitzhandler
Aber sollten Sie nicht Dateien in .git alleine lassen (den Inhalt mit offiziellen Mitteln manipulieren)?
Peter Mortensen
13
Nur für den Fall, dass Sie Unterordner ausschließen müssen, können Sie den **Platzhalter verwenden, um eine beliebige Ebene des Unterverzeichnisses auszuschließen.
Um ein gesamtes Verzeichnis in Git zu ignorieren, ist es am einfachsten, eine Gitignore-Datei in das Zielverzeichnis aufzunehmen, die einfach "*" enthält.
Wenn alles andere fehlschlägt, versuchen Sie, die Datei zu bearbeiten
/.git/info/exclude
und fügen Sie die gewünschten Verzeichnisse wie folgt an das Ende der Datei hinzu:
# git ls-files --others --exclude-from=.git/info/exclude
# Lines that start with '#' are comments.
# For a project mostly in C, the following would be a good set of
# exclude patterns (uncomment them if you want to use them):
# *.[oa]
# *~
assets/
compiled/
Ich habe die Ordner "Assets" und "Compiled" zur Liste der zu ignorierenden Dateien und Verzeichnisse hinzugefügt.
Ich verwende Atom unter Windows 10. Es funktioniert! Danke Alter!
Putu De
Ich habe alle anderen mit meiner aktuellen Konfiguration ausprobiert und dies war meine endgültige Antwort.
Xedret
9
Unter Unix:
touch .gitignore
Unter Windows:
echo > .gitignore
Diese in einem Terminal ausgeführten Befehle erstellen eine .gitignoreDatei am aktuellen Speicherort.
Fügen Sie dieser .gitignoreDatei dann einfach Informationen hinzu (z. B. mit Notepad ++), welche Dateien oder Ordner ignoriert werden sollen. Speichern Sie Ihre Änderungen. Das ist es :)
Dies ist die beste Antwort und bietet zusätzliche Vorteile bei der Projektbereitstellung und -wartung.
Nitin ...
Wer ist "simples" ?
Peter Mortensen
8
Ich hatte einige Probleme, Git dazu zu bringen, die .gitignoreDatei unter Windows aufzunehmen. Die $GIT_DIR/info/excludeDatei scheint jedoch immer zu funktionieren.
Der Nachteil dieses Ansatzes ist jedoch, dass die Dateien im $GIT_DIRVerzeichnis nicht beim Einchecken enthalten sind und daher nicht freigegeben werden.
ps $GIT_DIRist normalerweise der versteckte Ordner mit dem Namen.git
... mit dem .gitignoredu beschreibst. Dies gibt Ihnen folgende git statusAusgabe:
$ git status
# On branch master
# Untracked files:
# (use "git add <file>..." to include in what will be committed)
#
# .gitignore
# a-cache/
# b-cache/
... wenn die index.htmlDateien noch nicht zum Repository hinzugefügt wurden. (Git sieht, dass sich nicht signierte Dateien in den Cache-Verzeichnissen befinden, meldet jedoch nur die Verzeichnisse.) Um dies zu beheben, stellen Sie sicher, dass Sie die index.htmlDateien hinzugefügt und festgeschrieben haben :
git add *cache/index.html
git commit -m "Adding index.html files to the cache directories"
... und dein git statusWille sieht dann so aus:
$ git status
# On branch master
# Untracked files:
# (use "git add <file>..." to include in what will be committed)
#
# .gitignore
nothing added to commit but untracked files present (use "git add" to track)
(Natürlich möchten Sie sich auch festlegen .gitignore. Ich war nur faul mit diesem Testfall.)
Sie wahrscheinlich tun wollen .gitignore besonders begehen , wie Sie wahrscheinlich zu wollen , sind Änderungen daran zu verfolgen, und so ist Ihr Team (wenn Sie mit einem arbeiten). Siehe stackoverflow.com/a/767213/123033
Dave Everitt
2
@ Dave Everitt: Genau deshalb habe ich gesagt "Natürlich möchten Sie auch .gitignore festlegen".
Mark Longair
6
Wenn Sie unter Windows und Mac einen Ordner mit dem Namen Flower_Data_Folder im aktuellen Verzeichnis ignorieren möchten, haben Sie folgende Möglichkeiten:
echo Flower_Data_Folder >> .gitignore
Wenn es sich um eine Datei mit dem Namen handelt data.txt:
echo data.txt >> .gitignore
Wenn es sich um einen Pfad wie "Data / passwords.txt" handelt
Ich hatte ähnliche Probleme. Ich arbeite an einer Windows-Toolkette mit einem gemeinsam genutzten Repository für Linux-Leute, und sie erstellen gerne Dateien mit denselben (außer Fall-) Namen in einem bestimmten Ordner.
Der Effekt ist, dass ich das Repository klonen kann und sofort Dutzende von 'geänderten' Dateien habe, die beim Einchecken Chaos verursachen würden.
Ich habe Windows auf Groß- und Kleinschreibung eingestellt und Git, um Groß- und Kleinschreibung nicht zu ignorieren, aber es schlägt immer noch fehl (in den Win32-API-Aufrufen anscheinend).
Wenn ich die Dateien gitignore, muss ich daran denken, die .gitignore-Datei nicht zu verfolgen.
Der Link scheint unterbrochen zu sein (er leitet zuerst zur 'https'-Version weiter): "Sichere Verbindung fehlgeschlagen. Während einer Verbindung zu archive.robwilkerson.org ist ein Fehler aufgetreten. PR_END_OF_FILE_ERROR"
Peter Mortensen
0
Erstellen .gitignoreSie einfach eine Datei in Ihrem Projektordner und fügen Sie dann den Namen des Ordners hinzu, zum Beispiel:
.gitkeep
) versteckte Dateien verwenden , um ein Verzeichnis anzugeben, das aufbewahrt werden soll/
am Ende, was es wissen lässt, dass es ein Verzeichnis ist, das es ignorieren sollte?Antworten:
Erstellen Sie eine Datei mit dem Namen
.gitignore
im Verzeichnis Ihres Projekts. Ignorieren Sie Verzeichnisse, indem Sie den Verzeichnisnamen in die Datei eingeben (mit einem angehängten Schrägstrich):Weitere Informationen finden Sie hier .
quelle
Standardmäßig wird der Windows Explorer angezeigt,
.gitignore
wenn der Dateiname tatsächlich lautet.gitignore.txt
.Git wird nicht verwendet
.gitignore.txt
Und Sie können die Datei nicht umbenennen
.gitignore
, da Windows Explorer der Meinung ist, dass es sich um eine Datei vom Typ gitignore ohne Namen handelt.Nicht-Befehlszeilenlösung:
quelle
".gitignore"
ohne automatisch eine Erweiterung hinzuzufügen.".gitignore."
- Das ist ein toller Trick! Ich hatte auch immer Probleme mit.htaccess
...Es scheint, dass es zwei Möglichkeiten gibt, Dateien und Verzeichnisse zu ignorieren:
.gitignore
.gitignore
Datei im Stammverzeichnis Ihres Repositorys neben dem.git
Ordner (stellen Sie unter Windows sicher, dass Sie die wahre Dateierweiterung sehen, und erstellen Sie dann.gitignore.
(mit dem Punkt am Ende, um eine leere Dateierweiterung zu erstellen)).~/.gitignore_global
und führen Sie sie ausgit config --global core.excludesfile ~/.gitignore_global
, um sie Ihrer Git-Konfiguration hinzuzufügenHinweis: Zuvor verfolgte Dateien können durch Ausführen nicht mehr verfolgt werden
git rm --cached filename
Repository ausschließen - Für lokale Dateien, die nicht freigegeben werden müssen, fügen Sie der Datei einfach das Dateimuster oder -verzeichnis hinzu
.git/info/exclude
. Diese Regeln sind nicht festgeschrieben, sodass sie von anderen Benutzern nicht gesehen werden . Weitere Informationen finden Sie hier .Informationen zu Ausnahmen in der Liste der ignorierten Dateien finden Sie in dieser Frage .
quelle
git rm --cached <filename>
. Absolut kritisch für Repos, die existierten, BEVOR Sie die.gitignore
Ich hatte einige Probleme beim Erstellen einer Datei im Windows Explorer mit einem
.
am Anfang.Eine Problemumgehung bestand darin, in die Befehlsschale zu wechseln und mit "Bearbeiten" eine neue Datei zu erstellen.
quelle
.
am Ende einfach ein Extra hinzu, damit der Explorer nicht mehr denkt, dass.gitignore
es sich um die Erweiterung handelt. Dann wird bei der Eingabe dieser nachfolgende Punkt ohne Erweiterung nur gegessen und Sie haben.gitignore
TL; DR: Versuchen Sie, ihn zu benennen.gitignore.
=> Sie erhalten.gitignore
Um Git anzuweisen, bestimmte Dateien oder Ordner zu ignorieren, müssen Sie eine
.gitignore
Datei erstellen .Im Windows Explorer müssen Sie jedoch einen Namen für die Datei angeben. Sie können einfach keine Datei mit nur einer Erweiterung erstellen. Der Trick besteht darin, eine leere Textdatei zu erstellen, zur Eingabeaufforderung zu wechseln und den Namen der Datei in zu ändern
.gitignore
:Öffnen Sie nun die Datei mit Ihrem bevorzugten Texteditor und fügen Sie die Datei- / Ordnernamen hinzu, die Sie ignorieren möchten. Sie können auch Platzhalter wie diesen verwenden :
*.txt
.quelle
type nul > .gitignore
um eine leere Datei zu erstellen.gitignore.
wenn die Dateierweiterungen nicht in Ihrem Windows Explorer versteckt sindWenn Sie einen Ordner und nicht die darin enthaltenen Dateien verwalten möchten, legen Sie einfach eine ".gitignore" -Datei in den Ordner mit "*" als Inhalt ab. Diese Datei lässt Git alle Inhalte aus dem Repository ignorieren. Aber
.gitignore
in Ihrem Repository aufgenommen werden.Wenn Sie einen leeren Ordner hinzufügen, erhalten Sie diese Nachricht (.gitignore ist eine versteckte Datei).
Verwenden Sie also "-f", um das Hinzufügen zu erzwingen:
quelle
In Windows gibt es einen zusätzlichen Haken mit Schrägstrichen. Ausschließen eines einzelnen Verzeichnisses in .gitignore mit
wird möglicherweise funktionieren, aber alle Verzeichnisse mit ausschließen
verursacht Probleme, wenn Sie Dateinamen mit Leerzeichen (wie
my file.txt
) in Ihrem Verzeichnis haben: Git Bash maskiert diese Leerzeichen mit einem Backslash (wiemy\ file.txt
) und Git für Windows unterscheidet nicht zwischen/
und\
.Um alle Verzeichnisse auszuschließen, verwenden Sie besser:
Zwei aufeinanderfolgende Sternchen kennzeichnen den Verzeichnisinhalt.
quelle
Auch in Ihrem
\.git\info
Projektverzeichnis gibt es eine Ausschlussdatei, die praktisch mit.gitignore
(glaube ich) identisch ist . Sie können Dateien und Verzeichnisse hinzufügen, die Sie ignorieren möchten.quelle
Nur für den Fall, dass Sie Unterordner ausschließen müssen, können Sie den
**
Platzhalter verwenden, um eine beliebige Ebene des Unterverzeichnisses auszuschließen.quelle
Um ein gesamtes Verzeichnis in Git zu ignorieren, ist es am einfachsten, eine Gitignore-Datei in das Zielverzeichnis aufzunehmen, die einfach "*" enthält.
Ein anschauliches Beispiel,
Beispielsystem
Tor
Top Level .gitignore (/root/.gitignore)
Ignoriertes Verzeichnis .gitignore (/root/dirB.gitignore)
Und so einfach ist das :)
quelle
Wenn alles andere fehlschlägt, versuchen Sie, die Datei zu bearbeiten
und fügen Sie die gewünschten Verzeichnisse wie folgt an das Ende der Datei hinzu:
Ich habe die Ordner "Assets" und "Compiled" zur Liste der zu ignorierenden Dateien und Verzeichnisse hinzugefügt.
quelle
Unter Unix:
Unter Windows:
Diese in einem Terminal ausgeführten Befehle erstellen eine
.gitignore
Datei am aktuellen Speicherort.Fügen Sie dieser
.gitignore
Datei dann einfach Informationen hinzu (z. B. mit Notepad ++), welche Dateien oder Ordner ignoriert werden sollen. Speichern Sie Ihre Änderungen. Das ist es :)Weitere Informationen: .gitignore
quelle
Sie können die Datei ".gitignore" mit folgenden Inhalten erstellen:
Für mich geht das.
quelle
Ich hatte einige Probleme, Git dazu zu bringen, die
.gitignore
Datei unter Windows aufzunehmen. Die$GIT_DIR/info/exclude
Datei scheint jedoch immer zu funktionieren.Der Nachteil dieses Ansatzes ist jedoch, dass die Dateien im
$GIT_DIR
Verzeichnis nicht beim Einchecken enthalten sind und daher nicht freigegeben werden.quelle
Ich gehe davon aus, dass das Problem darin besteht, dass Ihr Arbeitsbaum wie folgt aussieht:
... mit dem
.gitignore
du beschreibst. Dies gibt Ihnen folgendegit status
Ausgabe:... wenn die
index.html
Dateien noch nicht zum Repository hinzugefügt wurden. (Git sieht, dass sich nicht signierte Dateien in den Cache-Verzeichnissen befinden, meldet jedoch nur die Verzeichnisse.) Um dies zu beheben, stellen Sie sicher, dass Sie dieindex.html
Dateien hinzugefügt und festgeschrieben haben :... und dein
git status
Wille sieht dann so aus:(Natürlich möchten Sie sich auch festlegen
.gitignore
. Ich war nur faul mit diesem Testfall.)quelle
Wenn Sie unter Windows und Mac einen Ordner mit dem Namen Flower_Data_Folder im aktuellen Verzeichnis ignorieren möchten, haben Sie folgende Möglichkeiten:
Wenn es sich um eine Datei mit dem Namen handelt
data.txt
:Wenn es sich um einen Pfad wie "Data / passwords.txt" handelt
quelle
Ich hatte ähnliche Probleme. Ich arbeite an einer Windows-Toolkette mit einem gemeinsam genutzten Repository für Linux-Leute, und sie erstellen gerne Dateien mit denselben (außer Fall-) Namen in einem bestimmten Ordner.
Der Effekt ist, dass ich das Repository klonen kann und sofort Dutzende von 'geänderten' Dateien habe, die beim Einchecken Chaos verursachen würden.
Ich habe Windows auf Groß- und Kleinschreibung eingestellt und Git, um Groß- und Kleinschreibung nicht zu ignorieren, aber es schlägt immer noch fehl (in den Win32-API-Aufrufen anscheinend).
Wenn ich die Dateien gitignore, muss ich daran denken, die .gitignore-Datei nicht zu verfolgen.
Aber ich habe hier eine gute Antwort gefunden:
http://archive.robwilkerson.org/2010/03/02/git-tip-ignore-changes-to-tracked-files/index.html
quelle
Erstellen
.gitignore
Sie einfach eine Datei in Ihrem Projektordner und fügen Sie dann den Namen des Ordners hinzu, zum Beispiel:quelle