2009-08-13 2 views
299

Der Befehl entfernt die Datei in meinem System. Ich meinte damit nur die Datei aus dem Git-Repository zu entfernen.Wie übertrage ich eine Datei, ohne sie von der Festplatte zu löschen?

Wie kann ich die Datei aus einem Git-Repository entfernen, ohne die Datei in meinem System zu entfernen?

+0

entfernen Sie es von früheren Commits oder von der letzten? –

+0

@Nick D. Die Frage ließ es offen. –

+0

@Masi, wenn Sie es aus früheren Commits entfernen möchten, wird es ein bisschen komplexer werden - sicher sein, speziell danach zu fragen, wenn das ist, was Sie wollen – bdonlan

Antwort

557

Laut "git help rm",

git rm --cached file 

sollte das tun, was Sie wollen.

+7

Ich bin neu bei Git, aber ich habe das ein paar Mal gemacht und wenn dann jemand anderes aus dem Repository zieht, wird * ihre * lokale Datei gelöscht. Immer noch suchen, um zu sehen, ob Weg vom nächsten Entwickler, der einen Zug macht, nicht gelöscht wird. – Terry

+2

@Terry, siehe http://stackoverflow.com/questions/2604625/git-how-to-remove-file-from-index-without-deleting-files-von-any-repository – AlcubierreDrive

+14

Das verwirrende für mich ist, dass Die man-Seite für git-rm besagt, dass sie die Datei (en) nicht aus Ihrem Arbeitsverzeichnis entfernt. Aber was ich sehe, wenn ich nicht --cached verwende, ist, dass die Datei neu gemountet wird. – zznq

22

Ich habe versucht, mit den gegebenen Antworten zu experimentieren. Meine persönliche Erkenntnis kam heraus:

git rm -r --cached . 

Und dann

git add . 

Das schien mein Arbeitsverzeichnis schön und sauber zu machen. Sie können Ihren Dateinamen an Stelle des Punktes setzen.

+7

+1 '-r': Erlaube rekursive Entfernung, wenn ein führender Verzeichnisname angegeben wird. –

+1

-r ist nicht erforderlich, wenn Sie * .suffix tun (sehr beunruhigend, dieses Verhalten auf die harte Tour zu entdecken) – szeitlin

Verwandte Themen