私はを使用していくつかのファイルの名前を変更しましたgit mv
、使用されgit stash
、HEADを(それを変更せずに)すばやく確認してgit stash pop
から、全体を再び取得しました。私の動きはコミットリストから消えていたので、私はそれらをやり直しました、git rm
そしてコミットメッセージはgitが名前の変更が名前の変更であることを発見したと主張しました。だから私はそれ以上は考えませんでした。
しかし、今、コミット後、移動したファイルの履歴を取得できません!問題のコミットについてgitが言っていることは次のとおりです:
~/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%
現在、これらの移動されたファイルの1つの履歴を取得しようとしているため、古いバージョンを表示できますが、あまり有用なものはありません。
~/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%
(私もせずに、それを試してみた-M
、-C
と--find-copies-harder
、しかし無駄に。)
古い名前で履歴を取得できます。古い場所から削除された時点で停止します。
~/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%
だから、今回は完全に行き詰まっているわけではありませんが、この種のことをいつもしなければならないというのはおもしろくないでしょう。(私は、人生で少なくとも1回は移動するかなりの数のファイルがあると予想しています。)
私は何か間違ったことをしていますか?ファイルの古いコピーと新しいコピーは98.8%同一です(166のうち2行が変更されています)。私の理解では、gitは名前を変更する操作を明示的に保存するのではなく推論し、ファイルは十分に類似しているため、同じと見なす必要があると信じているため、この場合のファイルを追跡できるはずです。
これを修正するために私ができることはありますか?