Ich habe ein paar Dateien umbenannt git mv
, verwendet git stash
, einen kurzen Blick auf HEAD geworfen (ohne es zu ändern) und dann git stash pop
das ganze Los wieder zurückbekommen. Meine Züge waren von der Festschreibungsliste verschwunden, daher habe ich sie mit überarbeitet git rm
und die Festschreibungsnachricht behauptete, Git habe festgestellt, dass die Umbenennung eine Umbenennung war. Also dachte ich nicht mehr daran.
Aber jetzt, nach dem Festschreiben, kann ich nicht mehr auf den Verlauf der verschobenen Dateien zugreifen! Folgendes sagt git zu dem fraglichen Commit:
~/projects% git log --summary
commit de6e9fa2179ae17ec35a5c368d246f19da27f93a
Author: brone
Date: Wed Dec 8 22:37:54 2010 +0000
Moved R_DebugUI into runtime
delete mode 100644 test/R_DebugUI_iOS.h
delete mode 100644 test/R_DebugUI_iOS.m
create mode 100644 system/runtime/src/R_DebugUI_iOS.h
create mode 100644 system/runtime/src/R_DebugUI_iOS.m
<<snip older commits>>
~/projects%
Ich versuche jetzt, den Verlauf einer dieser verschobenen Dateien abzurufen, damit ich mir eine alte Version ansehen kann, aber ich bekomme nichts sehr Nützliches:
~/projects/system/runtime/src% git log --follow --find-copies-harder -M -C R_DebugUI_iOS.m
commit de6e9fa2179ae17ec35a5c368d246f19da27f93a
Author: brone
Date: Wed Dec 8 22:37:54 2010 +0000
Moved R_DebugUI into runtime
~/projects/system/runtime/src%
(Ich habe versucht , es auch ohne -M
, -C
und --find-copies-harder
, aber ohne Erfolg.)
Ich kann seine Geschichte unter seinem alten Namen abrufen, der an dem Punkt endet, an dem er von seinem alten Standort gelöscht wurde:
~/projects% git log --summary --follow --find-copies-harder -M -C -- test/R_DebugUI_iOS.m
commit de6e9fa2179ae17ec35a5c368d246f19da27f93a
Author: brone
Date: Wed Dec 8 22:37:54 2010 +0000
Moved R_DebugUI into runtime
delete mode 100644 test/R_DebugUI_iOS.m
commit 32a22d53c27e260714f759ecb3d3864e38b2e87f
Author: brone
Date: Tue Dec 7 23:52:51 2010 +0000
Can set debug UI's alpha.
<<snip older commits>>
~/projects%
Diesmal stecke ich also nicht ganz fest, aber ich würde nicht gerne die ganze Zeit so etwas tun müssen. (Ich gehe davon aus, dass eine ganze Reihe von Dateien mindestens einmal in ihrem Leben verschoben werden.)
Mache ich etwas falsch? Die alte und die neue Kopie der Datei sind zu 98,8% gleich (2 von 166 Zeilen wurden geändert). Mein Verständnis ist, dass git in diesem Fall in der Lage sein sollte, die Datei zu verfolgen, da es Umbenennungsvorgänge ableitet, anstatt sie explizit zu speichern, und die Dateien so ähnlich sind, dass ich glaube, dass sie gleich betrachtet werden sollten.
Kann ich irgendetwas tun, um das zu beheben?