Як конвертувати репозиторій Git з SHA1 у SHA256 і назад

Основний трюк полягає в тому, щоб експортувати git bundle, а потім імпортувати його знову у щойно ініціалізований репозиторій.

Зауважте, що новий репозиторій не буде сумісним зі старим — хоча він містить ті самі коміти, ця стратегія міграції не забезпечує жодної прямої сумісності

Як мігрувати з репозиторію SHA1 у SHA256

git_bundle_migrate.sh
# Створити новий репозиторій з SHA-256
git init --object-format=sha256 new-repo

# Перейти до каталогу старого репозиторію та створити bundle
cd old-repo
git bundle create ../repo-bundle --all

# Перейти до нового репозиторію та розпакувати bundle
cd ../new-repo
git bundle unbundle ../repo-bundle

# Перевірити гілки
git branch -a

Як мігрувати з репозиторію SHA256 у SHA1

git_bundle_migrate_back.sh
# Створити новий репозиторій з SHA-1
git init --object-format=sha1 new-repo

# Перейти до каталогу старого репозиторію та створити bundle
cd old-repo
git bundle create ../repo-bundle --all

# Перейти до нового репозиторію та розпакувати bundle
cd ../new-repo
git bundle unbundle ../repo-bundle

# Перевірити гілки
git branch -a

Дивіться схожі статті за категоріями: Git