.gitignore sollte funktionieren. Können Sie eine Kopie der Zeilen bereitstellen, die Sie in .gitignore eingegeben haben, um zu versuchen, dieses Problem zu lösen?
Al Riddoch
Antworten:
41
Steck es rein .gitignore. Aber von der gitignore(5)Manpage:
·If the pattern does not contain a slash /, git treats it as a shell
glob pattern and checks for a match against the pathname relative
to the location of the .gitignore file (relative to the toplevel of
the work tree ifnotfrom a .gitignore file).·Otherwise, git treats the pattern as a shell glob suitable for
consumption by fnmatch(3)with the FNM_PATHNAME flag: wildcards in
the pattern will not match a /in the pathname.For example,"Documentation/*.html" matches "Documentation/git.html" but not"Documentation/ppc/ppc.html"or"tools/perf/Documentation/perf.html".
Geben Sie also entweder den vollständigen Pfad zum entsprechenden *.pycEintrag an oder legen Sie ihn in einer .gitignoreDatei in einem der Verzeichnisse ab, die vom Repository-Stamm (einschließlich) führen.
Um zu vermeiden, dass andere verwirrt werden, ist Ignacios Interpretation der Manpage falsch. Sie müssen die * .pyc nicht im selben Verzeichnis ablegen, es reicht aus, sie in einem übergeordneten Verzeichnis (oder Großeltern usw.) abzulegen.
Godsmith
@ Godsmith: Korrigiert.
Ignacio Vazquez-Abrams
240
Sie sollten eine Zeile hinzufügen mit:
*.pyc
in die .gitignoreDatei im Stammordner Ihres Git-Repository-Baums direkt nach der Repository-Initialisierung.
Wie ralphtheninja sagte, wenn Sie es vorher vergessen haben, wenn Sie nur die Zeile zur .gitignoreDatei hinzufügen , werden alle zuvor festgeschriebenen .pycDateien weiterhin verfolgt, sodass Sie sie aus dem Repository entfernen müssen.
Wenn Sie sich auf einem Linux-System befinden (oder "Eltern & Söhne" wie ein MacOSX), können Sie dies schnell mit nur diesem einzeiligen Befehl tun, den Sie vom Stammverzeichnis des Repositorys ausführen müssen:
find .-name "*.pyc"-exec git rm -f "{}" \;
Dies bedeutet nur:
Suchen Sie ausgehend von dem Verzeichnis, in dem ich mich gerade befinde, alle Dateien, deren Name mit der Erweiterung endet .pyc, und übergeben Sie den Dateinamen an den Befehlgit rm -f
Nach dem *.pyc Dateien Löschen von git als nachverfolgt Dateien, begehen diese Änderung in das Repository, und dann können Sie endlich die hinzufügen *.pycLeitung zur .gitignoreDatei.
Alternativ können Sie die Dateien auch einfach git rm --cached *.pycaus dem Verzeichnis der obersten Ebene entfernen, um sie von git und von Ihrem lokalen Computer zu entfernen . Habe es von hier bekommen
Anupam
Ich habe es existiert, aber sobald Sie die .pyc-Dateien festschreiben, wird es trotzdem von git verfolgt, sollten Sie sie zuerst löschen und
festschreiben
84
Wahrscheinlich haben Sie sie in das Repository vor der Inbetriebnahme hinzugefügt *.pycin .gitignore.
Entfernen Sie sie zuerst aus dem Repository.
Hinweis: Wenn Sie virtualenv verwenden, befinden sich .pycin dem Verzeichnis, in dem Sie sich gerade befinden, mehrere weitere Dateien, die von seinem Befehl find erfasst werden.
Ich nehme an, es ist harmlos, alle Dateien zu entfernen, aber wenn Sie nur die .pycDateien in Ihrem Hauptverzeichnis entfernen möchten, tun Sie es einfach
find "*.pyc" -exec git rm -f "{}" \;
Dadurch wird nur die app.pycDatei aus dem Git-Repository entfernt.
Antworten:
Steck es rein
.gitignore
. Aber von dergitignore(5)
Manpage:Geben Sie also entweder den vollständigen Pfad zum entsprechenden
*.pyc
Eintrag an oder legen Sie ihn in einer.gitignore
Datei in einem der Verzeichnisse ab, die vom Repository-Stamm (einschließlich) führen.quelle
Sie sollten eine Zeile hinzufügen mit:
in die
.gitignore
Datei im Stammordner Ihres Git-Repository-Baums direkt nach der Repository-Initialisierung.Wie ralphtheninja sagte, wenn Sie es vorher vergessen haben, wenn Sie nur die Zeile zur
.gitignore
Datei hinzufügen , werden alle zuvor festgeschriebenen.pyc
Dateien weiterhin verfolgt, sodass Sie sie aus dem Repository entfernen müssen.Wenn Sie sich auf einem Linux-System befinden (oder "Eltern & Söhne" wie ein MacOSX), können Sie dies schnell mit nur diesem einzeiligen Befehl tun, den Sie vom Stammverzeichnis des Repositorys ausführen müssen:
Dies bedeutet nur:
Nach dem
*.pyc
Dateien Löschen von git als nachverfolgt Dateien, begehen diese Änderung in das Repository, und dann können Sie endlich die hinzufügen*.pyc
Leitung zur.gitignore
Datei.(angepasst von http://yuji.wordpress.com/2010/10/29/git-remove-all-pyc/ )
quelle
git rm --cached *.pyc
aus dem Verzeichnis der obersten Ebene entfernen, um sie von git und von Ihrem lokalen Computer zu entfernen . Habe es von hier bekommenWahrscheinlich haben Sie sie in das Repository vor der Inbetriebnahme hinzugefügt
*.pyc
in.gitignore
.Entfernen Sie sie zuerst aus dem Repository.
quelle
Ich versuche, den Satz eines früheren Beitrags zu verwenden und arbeite nicht rekursiv. Dann lese ich etwas Hilfe und erhalte diese Zeile:
pd ist erforderlich, um * .pyc in die .gitignore-Datei einzufügen, damit git sauber bleibt
Genießen.
quelle
Danke @Enrico für die Antwort.
Hinweis: Wenn Sie virtualenv verwenden, befinden sich
.pyc
in dem Verzeichnis, in dem Sie sich gerade befinden, mehrere weitere Dateien, die von seinem Befehl find erfasst werden.Beispielsweise:
Ich nehme an, es ist harmlos, alle Dateien zu entfernen, aber wenn Sie nur die
.pyc
Dateien in Ihrem Hauptverzeichnis entfernen möchten, tun Sie es einfachfind "*.pyc" -exec git rm -f "{}" \;
Dadurch wird nur die
app.pyc
Datei aus dem Git-Repository entfernt.quelle