gitはフォルダパスの変更をどうやって認識するのか?
(kwoncheol.me)- はじめに
-
gitはファイルをhash値で区別します
-
gitの4つのオブジェクト(object)タイプ
-
フォルダパスの変更とファイル名の変更は同じ作業です
-
フォルダ構造の再編、そしてかなり賢いgit
-
gitの推論
-
gitの renamed、edit-renamed 推論プロセス
1段階: 候補の選定
2段階: ファイルhash比較(renamed を見つける)
3段階: ファイル間の類似度比較(edit-renamed を見つける)
→ 計算コストが高すぎるのでは?
-
裏側の試行錯誤ストーリー
-
まとめ
1件のコメント
余談ですが、Git と GitHub ではファイルパスの検出方式が違うように思うんですよね。
Git では明らかに rename として認識されていたのに、GitHub で PR を上げるとファイルが削除されて別のファイルが追加されたかのように扱われて、diff が出なくて不便なことが多いです...