Fügen Sie dann den Pfad zu .gitignore hinzu, damit git nicht versucht, ihn später hinzuzufügen.
Grossvogel
3
Wird dies dazu führen, dass (Dateien in) dem Verzeichnis entfernt werden, wenn er von der Fernbedienung zieht?
Bstpierre
Nicht wenn er zieht; Die Dateien bleiben während des automatischen Zusammenführungsprozesses des Pulls lokal entfernt. Danach werden die Dateien durch einen Push serverseitig entfernt.
Walter Mundt
7
Was passiert, wenn ich eine dritte Fernbedienung habe? Werden die entsprechenden Dateien in einem zukünftigen Pull entfernt? Ich frage, weil ich der Meinung bin, dass dies ein recht häufiger Anwendungsfall ist, dh einige Dateien in das Repo einchecken, zu einem späteren Zeitpunkt feststellen, dass sie aus gutem Grund zwischen Fernbedienungen abweichen und eigentlich nie im Repo gewesen sein sollten Um dies zu beheben, müssen alle lokalen Kassen genau so bleiben, wie sie sind, aber die Dateien aus dem Repo entfernen.
Bobby Jack
6
Für einzelne Dateien können Sie tungit rm --cached path/to/file
Travis Reeder
3
Ich würde nur:
Verschieben Sie den Ordner aus Ihrem Arbeitsbaum
git rm Übertragen Sie im Ordner die Änderung
Hinzufügen zu .gitignore(oder .git/info/excludes), Festschreiben der Änderung
Dies ist keine gute Lösung - was ist, wenn Sie ein sehr großes Verzeichnis haben?
Ioleo
wahrscheinlich müssengit rm -r
theUtherSide
1
@loostro verschiebe es einfach nicht auf ein anderes Blockgerät. Die meisten Dateisysteme aktualisieren nur den Inode der Datei und verschieben nicht buchstäblich das gesamte Verzeichnis
Antworten:
Stellt das Löschen des Verzeichnisses bereit, berührt jedoch nichts auf der Festplatte. Dies funktioniert auch für eine Datei wie:
Danach möchten Sie möglicherweise
somedir/
odersomefile.ext
zu Ihrer.gitignore
Datei hinzufügen , damit git nicht versucht, sie wieder hinzuzufügen.quelle
git rm --cached path/to/file
Ich würde nur:
git rm
Übertragen Sie im Ordner die Änderung.gitignore
(oder.git/info/excludes
), Festschreiben der Änderungquelle
git rm -r