2016-04-08 31 views
1

Ich arbeite an einem Python-Projekt mit PyCharm, das einen Ordner .idea in meinem Projekt enthält.Warum kann ich einen Ordner nicht ignorieren?

Da der Betreuer des Projekts will nicht Mitwirkenden .gitignore das Projekt bearbeiten, habe ich eine .gitignore_global Datei zu ~/{myuser} mit zwei Linien:

# comment line because git has a bug where sometimes the first line is ignored 
.idea/ 

ich den Befehl

git config --global core.excludesfile "C:\\Users\\{myuser}\\.gitignore_global" 

lief Wenn git status ausgeführt wird, wird weiterhin das folgende angezeigt:

Untracked files: 
    (use "git add <file>..." to include in what will be committed) 

     .idea/ 

Ich habe versucht, diese beiden Befehle ausführen:

git rm --cached -r .idea/ 
git update-index --assume-unchanged .idea/ 

Die ersten Ergebnisse in einem Fehler:

fatal: pathspec '.idea/' did not match any files 

Die zweite ändert sich nichts.

Wie bekomme ich git diesen Ordner zu ignorieren?

Antwort

1

Das Problem war ein unnötiges Leerzeichen nach dem Verzeichnisnamen, den ich ignorieren wollte ...

Die ursprüngliche globale schließt Datei:

# 
.idea/ <--- there's a space here 

Der feste eins (kein Platz):

# 
.idea/ 

Ich schwöre, dass das Problem war ... Vielen Dank allen für Ihre Hilfe sowieso!

Wenn dies jemand in der Zukunft hilft, ich bin mit git Version 1.9.5.msysgit.1 auf Windows 7.

0

Wenn Git den Ordner nicht verfolgt, sollte er nicht in GitHub erscheinen. Haben Sie versucht, das Repository zu überprüfen, um sicherzustellen, dass es tatsächlich hochgeladen wird? Wenn dies der Fall ist, versuchen Sie, den .idea-Ordner aus dem Projekt zu entfernen, ein Commit auszuführen und ihn dann mit dem globalen .gitignore-Objekt wieder einzufügen. Wenn die Änderungen der Datei nicht verfolgt werden, aber bereits im Repository vorhanden sind, verbleibt sie im Repository. Es wird nur nicht aktualisiert werden.

+0

Er zeigt, dass es unter 'Untracked Dateien angezeigt:' Abschnitt, so dass es nicht in Repo, wie es sein sollte, das einzige Problem scheint die Ignorierregel nicht zu funktionieren. – kan

0

Ich denke, das Problem ist git config --global core.excludesfile "C:\Users\{myuser}\.gitignore_global", weil Sie \ verwenden und es ist Escape-Zeichen. Versuche es zu verdoppeln.

+0

Mein Schlechter, ich habe Doppel benutzt. –

+0

@ AvivCohn Dann versuchen Sie, sie zu verdoppeln ... weil es hängt davon ab, was Sie verwenden - cmd.exe oder git bash. Wenn ich nur auf meine lokale Seite gecheckt habe, hat meine .gitconfig Datei 'excludedfile = C: \\ temp \\ boo' unter' [core] '- und es funktioniert einwandfrei. – kan

0

Datei .gitignore wirkt sich nur auf Dateien aus, die nicht bereits hinzugefügt wurden, also ist .idea/ in Ihrem Repo oder nein?

Wenn Ihre .idea/ Ordner noch verfolgt wird, tun git rm -r --cached path_to_your_folder/

0

Nie jemals Gebrauch update-index --asume-unchanged es vielleicht zu werden scheint zu tun, was Sie wollen, aber Sie sind sehr wahrscheinlich Ihre Dateien, anstatt zu riskieren.

Ihre Beschreibung scheint am ehesten ein Problem mit dem core.excludesfile Wert zu sein. Verwenden Sie Git für Windows oder Cygwin Git? Wenn Letzteres erforderlich ist, müssen Sie möglicherweise den Cygwin-Pfad und nicht den Windows-Pfad einrichten.

Alternativ könnten Sie auch Ihre Excludes in .git/info/excludes machen, dann sind sie natürlich nur für dieses Repo, nicht für alle Ihre Repos wie Sie es ausprobiert haben.

Sie können das Ergebnis auch mit dem Befehl git check-ignore .idea/ --no-index -v -n oder ähnlichem diagnostizieren.

Verwandte Themen