Ich habe .gitignore
d .DS_Store
und .gitignore
Dateien. Sieh sie aber immer noch im "git status".
Kann mir jemand erklären, wie ich sicherstellen kann, dass die Dateien, die ich zu ignorieren versuche, beim Überprüfen des Status nicht angezeigt werden?
%Vor% Ich habe die Datei .DS_Store
in allen Unterordnern meines Repositorys. Also möchte ich, dass all diese ignoriert werden. Was soll ich tun?
Ich habe .gitignore
file im Stammverzeichnis meines Repositorys konfiguriert.
Soll ich das in alle Unterordner kopieren, damit git diese Dateien ignoriert?
Wird .gitignore
in .gitignore
nicht akzeptiert?
EDIT: 21. Januar 2014 ===================
Ich kann das immer noch nicht herausfinden. Die Kommentare unten haben mir nicht wirklich geholfen. Also repost ich meine Anfrage.
Unten ist ein Ausschnitt meiner git status
Ausgabe. Die tatsächliche Ausgabe erstreckt sich über mehrere Seiten. Und alle Dateien in dieser Ausgabe sind Dateien / Ordner, die ich nicht in meinem Repo haben möchte. Dies sind nicht nachverfolgte Dateien, daher habe ich sie nie git add
ediert. Aber wenn ich ein neues Projekt erstelle, muss ich nach den zugehörigen Dateien / Ordnern in dieser riesigen Liste suchen, bevor ich sie hinzufüge, was den gesamten Prozess etwas irritierend macht.
Unten ist meine .gitignore
Datei. Kann jemand bitte meinen Fehler aufzeigen?
.gitignore
nicht ignorieren. Ich glaube nicht, dass die Ignorierfunktion funktioniert, wenn Sie sie nicht in Ihrem Repository haben. Ich bin mir aber nicht sicher. .gitignore
hinzufügen. Wenn Sie möchten, dass sie ignoriert werden, nachdem sie bereits zum Repository hinzugefügt wurden, müssen Sie sie mit git rm filename
first entfernen. Wenn Sie eine Änderung an einer Datei ignorieren möchten, die von git verfolgt wird, können Sie angeben, dass sie davon ausgehen soll, dass die Datei nicht geändert wurde:
%Vor%und um die Änderungen erneut zu verfolgen, machen Sie:
%Vor% Wenn Sie bereits eine Datei hinzugefügt haben, die komplett ignoriert werden soll (.gitignore), müssen Sie zuerst git rm
it.
Warum ignorierst du .gitignore
? Das ergibt keinen Sinn. Wenn Sie einige Dateien nur lokal ignorieren möchten (d. H. Diese Einstellung nicht im Remote-Repository verfolgen und veröffentlichen), verwenden Sie stattdessen .git/info/exclude
. Fügen Sie einfach .DS_Store
hinzu, das ist alles.
Ich erlebe das gleiche Problem. Die Lösung besteht darin, zuerst ein .gitignore unter Ihrem Home-Verzeichnis hinzuzufügen.
Ich beende das Repository .gitignore erscheint nicht mehr im Indizierungs-Tracking.
Dies baut auf Jakub Jirutkas Antwort auf. Ich war ein wenig verwirrt auf den ersten Blick, aber ich habe es versucht und es hat funktioniert. Hier ist seine Antwort - hoffentlich - deutlicher.
Seine Antwort lautet einfach: Speichern Sie unerwünschte Dateien in .git/info/exclude
(das ist in jedem Git-Repository). Setzen Sie jede auf eine neue Zeile.
Die .gitignore
-Datei ist nützlich, um Dateien und Verzeichnisse zu ignorieren, von denen Sie wissen, dass sie erzeugt werden oder erzeugt werden, aber unerwünscht sind. Die Tatsache, dass Sie git add .gitignore
und dann das Commit und dann drücken können, ist wirklich nützlich. Wenn Sie beispielsweise dieses Repository auf einem anderen Computer klonen, werden alle Dateien, die ignoriert werden sollen (nach einem ./configure; make; sudo make install;
zum Beispiel normalerweise Beispieldateien und viele andere Links generiert), sein ignoriert (wenn sie in .gitignore
sind.
Manchmal ist man sich jedoch nicht sicher, ob eine Datei im Repository gewünscht ist oder ob die Datei außerhalb von git control existieren soll, als ob sie in einem nicht git-kontrollierten Verzeichnis wäre. Dies können Sie tun, indem Sie dies der Ausschlussdatei innerhalb der exclude
-Datei im .git/info
-Verzeichnis hinzufügen.
Jedes git-Repository hat einen .git-Ordner. Um eine Datei oder ein Verzeichnis vollständig auszuschließen, gehen Sie zum guten alten Terminal, cd
, zum Stamm des Repositorys (d. H.% Co_de%). Dann sehen Sie cd src/best_repo_eva
. Dann .git/
. Dort wird wahrscheinlich nur eine Datei namens cd .git/info/
sein. Verwende deinen Lieblingseditor (nur ein Scherz; du kannst nur Schmetterlingsflügel benutzen, um kosmische Strahlen in der oberen Atmosphäre zu fokussieren, um die richtigen Bits auf deiner Laufwerksscheibe umzudrehen;), um die exclude
so zu bearbeiten, dass sie die Dateien enthält, die du ausschließen willst in neuen Zeilen.
Einfachere Lösung: Sie haben zwei Dateien, die ausgeschlossen werden sollen: exclude
und tmp1
Gehe zu Terminal und ...
ignoreadf
cd src/best_repo_eva
Registerkarte echo -e "tmp
Registerkarte \n ign
Die Registerkarten funktionieren natürlich nur, wenn Ihr Terminal dies unterstützt. Beachten Sie die " >> .git/info/exclude
(unterstützt Backslash-Escapes) und die -e
(die durch ein Leerzeichen hervorgehoben wird) zwischen den beiden Dateien.
Speichern Sie viele Dateien mit einem ähnlichen Ende, so einfach wie \n
dann cd src/best_repo_eva
(das ist echo -e $(ls -1 | grep "tmp") >> .git/info/exclude
nicht ls -ONE
- beachten Sie, dass ls -L
leider nicht funktioniert). Das würde alle Dateien, die die Sequenz "tmp" enthalten, in der Ausschlussdatei speichern.
Ich hatte das gleiche Problem unter Mac OS X. Ich hatte .gitignore-Datei im Repo, aber es wird einfach nicht funktionieren.
Was war komisch, als ich den .gitignore-Inhalt mit dem cat
-Befehl, der leer gedruckt wurde, auf die Konsole drucken wollte. Wenn es mit vim geöffnet wurde, erschien es als normal.
Die Lösung bestand darin, die Datei zu entfernen, eine neue Datei zu erstellen und den Inhalt erneut einzufügen. Danach begann das Ignorieren von Dateien zu arbeiten und wenn ich cat .gitignore
fertig war, wurde es richtig gedruckt.
Tags und Links git