[git] 既存のリポジトリを sha256 に移行してみた!
カテゴリー: バージョン管理/git
2024-11-04
タイトル
執筆:2024.11.04
編集:2024.11.04
編集:2024.11.04
sha256に変換することによるデメリット
- 新規リポジトリが必要になる
- 外部参照していた場合リンク切れになる。
- GUIツールが対応していない。
- SHA1 , SHA256が共存できない
remote pushするとエラーになる。
2024-11-04 での情報
Git GUI
TortoiseGit
は、sha256に対応していません
git version 2.47.0.windows.1 / TortoiseGit 2.17.0.2
TortoiseGit
は、sha256に対応していません
git version 2.47.0.windows.1 / TortoiseGit 2.17.0.2
致命的なのは、GUIツールが対応していないことですね。
現時点では、不具合検出のため意図的に統合していないと考えられ、
sha1 sha256 どちらかの選択になるので、
ほかのバージョン管理ツールはsha1 sha256 共存できるものもありますので、
もう少しgitの今後の進展を静観しましょう。
変換する方法は、
既存のリポジトリ
git config --local extensions.objectFormat sha256
新しいリポジトリ
git init --object-format=sha256 new-repo
cd new-repo
グローバルに設定する
git config --global extensions.objectFormat sha256
完全に移行する場合
git fast-export --all > repo.export
git init --object-format=sha256 new-repo
cd new-repo
# 各種設定をしておく
# git config --local ...
# git remote add ...
# 取り込む
git fast-import < ../repo.export
git checkout main
git log -n 1
git gc --prune=now --aggressive
cd ..
mv .git .git.sha1
mv new-repo/.git ./