Tan Shuai

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 ドキュメント を参照すると良いでしょう。

このガイドがお役に立てれば幸いです。楽しいコーディングを!