- 印刷する
- PDF
大容量ファイルのアップロード(LFS) を使用する
- 印刷する
- PDF
Classic/VPC環境で利用できます。
Gitリポジトリにアップロードできるファイル容量は最大500MBに制限されますが、Git LFS(Large File System)を活用するとGitリポジトリで大容量ファイル(ファイルごとに最大5GB)のバージョン管理を実行できます。Git LFSは大容量ファイルに関するメタデータ(metadata)のみリポジトリにコミットし、実際のファイルの内容は別途リモート保存場所に保存する方式で動作します。
Git LFS使用のための要件
Git LFSを利用するには、GitクライアントとGit LFSをローカルPCにインストールします。
- Gitの公式サイトでGitクライアントのインストールファイルをダウンロードしてインストールし、詳しい使用方法を確認します。
- Git LFSの公式サイトでGit LFSのインストールファイルをダウンロードしてインストールし、詳しい使用方法を確認します。
- Git LFSはHTTPS接続のみをサポートし、SSH接続はサポートしていません。
- 共通プロジェクトのためにGit LFSが適用されたリポジトリを共有する場合、すべてのプロジェクトメンバーがローカルPCにGit LFSをインストールし、Git LFSの仕組みや使用方法を熟知してください。
- Git LFSがインストールされていないローカルPCでは、LFS機能を利用した大容量ファイルの管理とファイルロックを実行できません。
- Git LFSをダウンロードしてインストールし、以下のように作業中のリポジトリパスでGit LFSを初期化します。
$ git lfs install Git LFS initialized.
大容量ファイルのアップロード
Git LFSを利用して大容量ファイルをアップロードする方法は、以下のとおりです。
このご利用ガイドでは、ローカルリポジトリでGit LFSを初期化し、特定のファイルに対してトラッキングを設定して遠隔リポジトリにアップロード(push)する方法を簡単な例で説明します。Git LFSの使用方法に関する詳しい内容は、Git LFSの公式サイトをご参照ください。
:::
- ローカルPCでGit Clientを実行し、作業するリポジトリパスに移動します。
- Git LFSの初期化を実行します。
$ git lfs install Git LFS initialized.
- アップロードする大容量ファイルにトラッキングを設定し、
.gitattributes
ファイルをコミットリストに追加します。- ワイルドカード(*)を利用して複数ファイルを指定できます。
.gitattributes
ファイルには、ファイルに関するトラッキング履歴が記録されます。
$ git lfs track "*.psd" Tracking "*.psd" $ git add .gitattributes
- アップロードする大容量ファイルをコミットし、リモートリポジトリにアップロード(push)します。
$ git add sample.psd $ git commit -m "Added design file" $ git push origin master
- 大容量ファイルをアップロード中に時間オーバー(i/o timeout)エラーなどが発生する場合、以下のように待機時間を延長できます。
$ git config lfs.activitytimeout 300
- ファイルのアップロードが完了すると、SourceCommitリポジトリの [Code] タブでトラッキングが設定された大容量ファイルがLFS形式で保存されていることを確認できます。
ファイルロック
Git LFSのファイルロック(lock)機能を利用すると、特定アカウントを使用する場合のみロックファイルを修正したり、アップロードできるように設定できます。
- ファイルロック機能はGit LFS 2.0以降のバージョンでのみ使用できます。
- Gitクライアントがファイルのロック状態を正しく認識するには、ユーザーのローカルPCリポジトリでファイルロック機能を設定します。
ファイルロック機能を設定する方法は、以下のとおりです。
$ git config lfs.{Git URL}/info/lfs.locksverify true
ファイルロック機能を設定したアカウントでのみファイルロック機能を解除できます。
ロック機能が未設定であると、他のアカウントでロックファイルをアップロードする際にも以下の警告メッセージとともにアップロードされるなど、ファイルロック機能が正しく動作しない場合があります。
$ git push origin master Locking support detected on remote "origin". Consider enabling it with: $ git config lfs.{Git URL}/info/lfs.locksverify true Unable to push locked files: test.txt - psr (refs: master) WARNING: The above files would have halted this push.
ファイルロック使用の例
ファイルロックを有効にした後は、ファイルロック機能を設定したサブアカウントでのみファイルをアップロードしたり、ファイルのロックを解除できます。
「サブアカウント1」でロック設定
$ git lfs lock "test.txt" Locked test.txt $git lfs locks test.txt {sub_account_name} ID:15
「サブアカウント2」でファイルアップロード(エラー発生)
$ git add test.txt $ git commit -m "Modify file" $ git push origin master Unable to push locked files: * test.txt - {sub_account_name} (refs: master) ERROR: Cannot update locked files.
ファイルロック設定解除の例
「サブアカウント1」でロック設定解除(解除成功)
$ git lfs unlock test.txt Unlocked test.txt
「サブアカウント2」でロック設定解除(エラー発生)
$ git lfs unlock test.txt test.txt is locked {Sub Account1}