gitignore funktioniert einfach nicht. Ich kann es nicht bekommen, .DS_Store & .gitignore Dateien zu ignorieren

7

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.

%Vor%

Unten ist meine .gitignore Datei. Kann jemand bitte meinen Fehler aufzeigen?

%Vor%     
deepng 10.01.2014, 11:26
quelle

8 Antworten

18
  1. Sie sollten Ihre .gitignore nicht ignorieren. Ich glaube nicht, dass die Ignorierfunktion funktioniert, wenn Sie sie nicht in Ihrem Repository haben. Ich bin mir aber nicht sicher.
  2. Dateien, die bereits verfolgt wurden, werden nicht ignoriert, selbst wenn Sie sie zu .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.
FSMaxB 10.01.2014 14:21
quelle
7

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.

Referenz: Ссылка Quelle: Ссылка

    
gauteh 28.12.2014 16:10
quelle
4

So sollte Ihr .gitignore aussehen:

%Vor%

Auch die .gitignore soll verfolgt werden, das Ignorieren macht keinen Sinn. Nachdem Sie die Datei so aktualisiert haben, dass sie nur .DS_Store enthält, tun Sie:

%Vor%     
Agis 10.01.2014 11:37
quelle
1

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.

    
Jakub Jirutka 10.01.2014 13:36
quelle
0

Fügen Sie die Zeilen hinzu

%Vor%     
Hogan 10.01.2014 11:31
quelle
0

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.

    
writecoffee 30.09.2014 21:48
quelle
0

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.

    
dylnmc 17.11.2014 17:09
quelle
0

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.

    
Lukasz Korzybski 23.07.2015 07:46
quelle

Tags und Links