Zmieniłem nazwy kilku plików, używając git mv
, użyłem git stash
, rzuciłem okiem na HEAD (bez zmiany), a następnie zrobiłem, git stash pop
aby odzyskać całą zawartość. Moje ruchy zniknęły z listy zmian, więc poprawiłem je za pomocą, git rm
a komunikat o zatwierdzeniu twierdził, że git zauważył, że zmiana nazwy to zmiana nazwy. Więc więcej o tym nie myślałem.
Ale teraz, po zatwierdzeniu, nie mogę dostać się do historii przeniesionych plików! Oto co git mówi o rozpatrywanym zatwierdzeniu:
~/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%
Próbuję teraz uzyskać historię jednego z tych przeniesionych plików, więc mogę spojrzeć na starą wersję, ale nie mam nic bardzo przydatnego:
~/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%
(Ja również próbowałem go bez -M
, -C
i --find-copies-harder
, ale bezskutecznie.)
Mogę pobrać jego historię pod starą nazwą, która kończy się w miejscu, w którym została usunięta ze starej lokalizacji:
~/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%
Więc tym razem nie utknąłem całkowicie, ale nie miałbym ochoty robić tego przez cały czas. (Spodziewam się, że będzie spora liczba plików, które zostaną przeniesione przynajmniej raz w życiu).
czy robię coś źle? Stara kopia pliku i nowa kopia są w 98,8% takie same (zmieniono 2 wiersze ze 166). Rozumiem, że git powinien być w stanie śledzić plik w tym przypadku, ponieważ wnioskuje o operacjach zmiany nazwy, a nie zapisuje je jawnie, a pliki są na tyle podobne, że uważam, że powinien uznać je za takie same.
Czy jest coś, co mogę zrobić, aby to naprawić?