BFG を使用してリポジトリを Git LFS へ移行する

既存の Bitbucket リポジトリで Git LFS を使用する

このページの内容

お困りですか?

アトラシアン コミュニティをご利用ください。

コミュニティに質問

robotsnoindex
robotsnoindex

Biitbucket リポジトリの既存の大容量ファイルに対して Git LFS 拡張機能を使用したい場合、それらをトラッキングするだけでは LFS ファイルへの変換は行われません。大容量ファイルは引き続き Git リポジトリの一部であるため、それらのファイルを変換するには、履歴を書き換える必要があります。 

このページでは、bfg-repo-cleaner を使用して Bitbucket リポジトリの Git 履歴を変更する場合の 3 つの段階について説明します。

次の点に留意する必要があります。

  • BFG はリポジトリの Git 履歴を完全に書き換えます。
  • 移行プロセスは時間を要する場合があります。この期間、ユーザーやワークスペースのすべてのメンバーは既存のリポジトリで作業を行うことができません。


移行を開始する前に次の点をご確認ください。

  • 変換するファイルに対して十分な LFS ストレージがあること。ファイルの現在のバージョンと履歴に含まれる過去のすべてのバージョンに対応できる必要があります。
  • リポジトリへのアクセス権を持つすべてのユーザーがすべての変更をプッシュ済みであること。プッシュされていない変更をあとからマージすることはできません。
  • 移行中はリポジトリ権限を調整してプッシュを禁止すること。
  • ローカル マシンに Java Runtime Environment (Java 7 以降) がインストールされていること。
  • https://rtyley.github.io/bfg-repo-cleaner/ から最新の BFG バージョンをダウンロードしていること。

ご質問がある場合は、Git LFS サポートのリリース ノート、または「BFG リポジトリ クリーナー」ページを参照してください

A. リポジトリの既存のファイルの Git LFS への変換

ターミナルで以降のすべてのコマンドを実行します。

1. リポジトリのクローン


git clone --mirror git@bitbucket.org:<username>/<repo-name>.git


mirror フラグでクローンを行うと、ベア リポジトリが作成されます。これを行うと、ユーザーや同僚のすべてのブランチを取得できます。

 <repo-name>.git という名前のフォルダが作成されます。

2. クローンされたリポジトリのバックアップ

<repo-name>.git フォルダのバックアップを作成し、問題が発生した場合にこのバージョンに戻れるようにします。

3. BFG での Git 履歴の書き換え

https://rtyley.github.io/bfg-repo-cleaner/ から最新の BFG バージョンをダウンロードしていることを確認します。

ダウンロードした bfg-x.x.x.jar ファイルのロケーションへの絶対パスを使用します。

java -jar <path to>bfg-x.x.x.jar --convert-to-git-lfs "*.{png,mp4}" --no-blob-protection <repo-name>.git

この例では png ファイルと mp4 ファイル タイプを変換していますが、他のファイル タイプも同様に変換できます。

(warning) これはすべてのブランチのすべての履歴を書き換え、すべての png および mp4 ファイルを LFS バージョンで置き換えます。

4. Git LFS の初期化


cd <repo-name>.git
git lfs install


これは、ベア リポジトリに pre-push hook を追加します。

5. 変換したリポジトリを Bitbucket にプッシュして戻す


git push --force


これはすべての大容量ファイルを LFS ストレージにプッシュし、新しく書き換えた履歴で Git 履歴を上書きします。

ご質問がある場合は、「BFG リポジトリ クリーナー」ページまたは Git LFS サポートのリリース ノートを参照してください。




B. Git LFS での以降のトラッキングのセットアップ

1. 変換したリポジトリを Bitbucket からクローン

git clone git@bitbucket.org:<username>/<repo-name>.git

前述の手順で変換した Git リポジトリをクローンします。

2. Git LFS ファイルでのファイルのトラッキング

Git LFS ファイルのトラッキングをローカルにセットアップする」をご参照ください。 



C. ワークスペースのメンバーによる更新されたリポジトリへの変更の許可

各ユーザーがローカルに Git LFS 拡張機能をインストールしている必要があります。手順については、「Bitbucket で Git LFS を使用する」をご参照ください。 

その後、ユーザーはローカルにあるリポジトリの既存のクローンを削除して、LFS が有効化された新しいバージョンをクローンする必要があります。


git clone git@bitbucket.org:<username>/<repo-name>.git




最終更新日 2020 年 6 月 24 日

この内容はお役に立ちましたか?

はい
いいえ
この記事についてのフィードバックを送信する
Powered by Confluence and Scroll Viewport.