Ändern der Dateinamen in Git Repo
Wie funktioniert git Griff mit dem Namen ändert?
Wird ein Datei-name-änderung erkannt werden, während eine Modifikation, oder gibt es eine "lost" - Datei, die entfernt werden muss und die neue Datei muss dann Hinzugefügt werden, mit git add
?
InformationsquelleAutor der Frage jarryd | 2011-04-05
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wird es automatisch erkannt werden als eine Modifikation und der "neuen" Datei wird in den index aufgenommen werden, so brauchen Sie nur einen Befehl:
Und ein Begehen der Kurs ..
InformationsquelleAutor der Antwort ralphtheninja
In jedem commit, git zeichnet den Zustand von deinem source-tree, eher als ob es ein umbenennen (oder was auch immer) produziert, der Staat. Also, wenn Sie nur umbenennen einer Datei in der Regel (eher als mit
git mv
), die Ausgabe vongit status
wird so etwas wie:Wenn Sie sich dann entscheiden, die Sie aufnehmen möchten, die den Zustand des Baumes mit, dass die Datei umbenannt wird, können Sie die Stufe wechseln mit:
... dann
git status
zeigen Sie:... und Sie verpflichten sich, mit
git commit
wie üblich:Ist der wichtigste Punkt zu beachten ist, dass bei der git sagt dir, dass eine Datei umbenannt wurde, wenn Sie die Historie, das ist, weil es hat geklappt das umbenennen muss geschehen durch den Vergleich der Zustand des Baumes von einer version zur anderen - es nicht bedeuten, dass eine rename-operation aufgezeichnet wurde, in der Geschichte.
InformationsquelleAutor der Antwort Mark Longair
Als die vorherigen Antworten haben erklärt, Git leitet eine Datei umbenennen aus dem change in content in deinen source-tree. Zum aufzeichnen einer rename-operation, Git speichert sowohl ein delete und add-operation, und nicht die rename-operation selbst.
Als Magnus Skog hingewiesen
git mv <filename1> <filename2>
sagt Git, fügen Sie den Inhalt in<filename1>
zu<filename2>
und entfernen<filename1>
von der Struktur der Datei.Als Daneben Longair erklärenwenn statt
git mv
verwenden Sie shell-Befehlmv <filename1> <filename2>
Git erkennt nicht die rename-operation, bis Sie aufrufengit rm <filename1>
undgit add <filename2>
.Jedoch ein weiterer Weg, zu sagen, Git über das umbenennen von Operationen mit
mv
ist die Verwendunggit add --all
. Dieser Befehl weist Git zu erkennen, vorzubereiten und zu Begehen, Sie alle Dateien in Ihrem Arbeitsbereich, die von denen abweichen, die in das repository, einschließlich derer, die Sie umbenannt haben:git add --all
ist ein sehr bequemer Weg, um einen commit für eine große Anzahl von Dateien, die Sie umbenannt haben in Ihrem Arbeitsbereich mit einem Skript-oder Massen-umbenennen-tool, zum Beispiel.InformationsquelleAutor der Antwort Derek Mahar
git mv
Dieser hält die Geschichte und verschiebt die Datei. Müssen commit danach, so der repo ist bis zu Datum.
Git wird auch die pick-up-Dateien, die verschoben werden, in das Dateisystem auf commit (einige Male) und auf Gelegenheiten wartet mit einer false-positive-wenn eine Datei gelöscht wird und eine neue (aber ähnliche) Datei erstellt.
Wird es auch verschieben Sie die Datei in das Dateisystem (dies kann überschrieben werden). So dass keine Notwendigkeit zu tun, eine
git add
InformationsquelleAutor der Antwort PAntoine