Saya telah mengganti nama beberapa file menggunakan git mv
, used git stash
, melihat sekilas HEAD (tanpa mengubahnya) lalu melakukannya git stash pop
untuk mendapatkan semuanya kembali. Perpindahan saya telah menghilang dari daftar komit, jadi saya mengulanginya git rm
dan pesan komit mengklaim bahwa git telah melihat penggantian nama adalah ganti nama. Jadi saya tidak memikirkannya lagi.
Tapi sekarang, pasca-komit, saya tidak bisa melihat riwayat file yang dipindahkan! Inilah yang dikatakan git tentang komit yang dimaksud:
~/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%
Sekarang saya mencoba mendapatkan riwayat dari salah satu file yang dipindahkan ini, sehingga saya dapat melihat versi lama, tetapi saya tidak mendapatkan sesuatu yang sangat berguna:
~/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%
(Saya juga mencobanya tanpa -M
, -C
dan --find-copies-harder
, tetapi tidak berhasil.)
Saya bisa mendapatkan sejarahnya dengan nama lamanya, yang berhenti pada titik itu dihapus dari lokasi lamanya:
~/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%
Jadi saya tidak sepenuhnya terjebak kali ini, tetapi saya tidak akan suka melakukan hal semacam ini sepanjang waktu. (Saya mengantisipasi memiliki cukup banyak file yang akan dipindahkan setidaknya sekali dalam hidup mereka.)
Apakah saya melakukan sesuatu yang salah? Salinan lama file dan salinan baru 98,8% sama (2 baris dari 166 diubah). Pemahaman saya adalah bahwa git harus dapat melacak file dalam kasus ini, karena ini menyimpulkan operasi ganti nama daripada menyimpannya secara eksplisit, dan file tersebut cukup mirip sehingga saya yakin harus menganggapnya sama.
Apakah ada yang bisa saya lakukan untuk memperbaikinya?