GitHub LFS (Git Large File Storage) リポジトリを AWS CodeCommit に移行する
最近、Git Large File Storage (LFS) を使用している GitHub リポジトリの一つを AWS CodeCommit に移行しました。同じことを考えている方のために、その手順を共有したいと思います。以下は私の経験に基づいたステップバイステップガイドです。
前提条件
始める前に、以下のツールがインストールされていることを確認してください:
- Git
- Git LFS
- AWS CLI
ステップバイステップガイド
1. リポジトリをクローン
まず、--mirror
オプションを使用して GitHub リポジトリをクローンします。これにより、すべてのブランチとタグを含むベアクローンが作成されます。
git clone --mirror https://github.com/tanshuai/designs.git designs
2. LFSファイルを確認
次に、Git LFS で管理されているすべてのファイルをリスト表示し、すべてが揃っていることを確認します。
git lfs ls-files
以下のような出力が見られるはずです:
cadfa0bc9e * Brochure-Trifold-Draft.ai
af9b8b8a1c * Brochure-Trifold-English.ai
27bb5f4e61 * Brochure-Trifold.ai
3. LFSファイルを移行
次に、LFSファイルをエクスポートします。このステップにより、これらのファイルがリポジトリの履歴の一部として保存されます。
git lfs migrate export --include="*.ai" --everything
以下のような進行状況メッセージが表示されます:
migrate: Sorting commits: ..., done.
migrate: Rewriting commits: 100% (20/20), done.
master 98a3c48d85... -> 82f8873b41...
migrate: Updating refs: ..., done.
migrate: checkout: ..., done.
prune: 3 local object(s), 0 retained, done.
cadfa0bc9e... (133 MB)
27bb5f4e61... (131 MB)
af9b8b8a1c... (130 MB), done.
prune: Deleting objects: 100% (3/3), done.
4. LFSをクリーンアップ
Git LFS の追跡情報を削除し、Git LFS をアンインストールします。
git lfs ls-files
git rm .gitattributes -f
git lfs uninstall
5. AWS CodeCommit にプッシュ
最後に、リポジトリを AWS CodeCommit にプッシュします。
git push https://git-codecommit.us-east-2.amazonaws.com/v1/repos/designs --all
これで完了です!これらの手順に従うことで、GitHub LFS リポジトリを AWS CodeCommit に無事に移行することができました。大きなファイルとリポジトリの履歴も完璧に保存されました。
まとめ
Git LFS を使用している GitHub リポジトリを AWS CodeCommit に移行するのは、適切な手順に従えば非常に簡単です。質問や問題がある場合は、AWS CodeCommit ドキュメント や Git LFS ドキュメント を参照すると良いでしょう。
このガイドがお役に立てれば幸いです。楽しいコーディングを!