Git LFS の使い方と設定 – 容量の重い画像を管理する

[Git LFS]とは[Git Large File Storage(ギットラージファイルストレージ)]の略です。
[GitHub.com]などのリモートサーバーにファイルを保存しながら、ビデオ・画像などの大きなファイルをGit内のテキストポインターに置き換えます。
## 1. Git LFSをインストールする
今回インストールしたのは[git-lfs-windows-v2.8.0.exe]です。
バージョンが違うと手順がことなる可能性があります。
1. [https://git-lfs.github.com/]から[Download]をクリックして[git-lfs-windows-v◯.◯.◯.exe]をダウンロードします。
Git LFSの使い方・設定-[Download]をクリックします。
1. ダウンロードした[git-lfs-windows-v◯.◯.◯.exe]をダブルクリックします。
Git LFSの使い方・設定-git-lfsの[exe]をダブルクリックします。
1. [I accept the agreement(私は契約に同意します)]にチェックをつけて[Next >]をクリックします。
Git LFSの使い方・設定-[I accept the agreement(私は契約に同意します)]にチェックをつけて[Next]をクリックします。
2. インストールするフォルダを選択します。
1. 初期設定されているフォルダ以外を選択する場合は、[Browse]をクリックしてフォルダを選択します。
2. 選択したら[Next >]をクリックします。
Git LFSの使い方・設定-Git LFSをインストールするフォルダを設定し、[Next]をクリックします。
3. インストールが完了したら[Finish]をクリックしてセットアップを終了します。
Git LFSの使い方・設定-[Finish]をクリックしてGit LFSのセットアップを完了します。
## 2. Git LFSのセットアップする
次にGit LFSとフックをセットアップしていきます。
1. [コマンド プロンプト]を起動します。
1. Windows10の左下のメニューの検索に[コマンド]と入力します。
2. 表示された[コマンド プロンプト]アプリをクリックします。
2. Git LFSを適用したいgitのリポジトリディレクトリ(ローカルのgitのリポジトリの場所)へ移動します。

cd リポジトリディレクトリまでのパス
// 例:cd users/c/dropbox/repository
// 例:cd %USERPROFILE%/dropbox/repository

7. 以下のコマンドを実行します。リポジトリごとに1回、リポジトリディレクトリで実行する必要があります。

git lfs install

以下の表示がされます。

Updated git hooks. // gitフックを更新しました。
Git LFS initialized. // Git LFSが初期化されました。

## 3. Git LFSで管理するファイルの種類を設定
Git LFSで管理するファイルの種類を追加していきます。
1. 以下のコマンドでGit LFSで管理するファイルの種類を追加します。

git lfs track "*.拡張子"

例えば、以下のコマンドを入力すると、拡張子がjpgのファイルをGit LFSで管理します。

git lfs track "*.jpg"

コマンドを入力すると、

Tracking "*.jpg"

と表示され、リポジトリディレクトリに[.gitattributes]が作成されます。
これで、拡張子がjpgのファイルはGit LFSで管理されます。
[.gitattributes]を開くと、以下のコードが書かれています。

*.jpg filter=lfs diff=lfs merge=lfs -text

## 4. Git LFSで管理するファイルの種類を追加する
1. Git LFSで管理するファイルの種類を追加するには、コマンドプロンプトで入力するか、直接[.gitattributes]に追記します。
例えば以下のコマンドを入力すると、拡張子がpngのファイルをGit LFSでの管理に追加します。

git lfs track "*.png"

コマンドを入力すると、

Tracking "*.png"

と表示され、[.gitattributes]に追記されます。
[.gitattributes]を開くと、以下のコードが書かれています。

*.jpg filter=lfs diff=lfs merge=lfs -text
*.png filter=lfs diff=lfs merge=lfs -text

これで、jpgとpngのファイルがGit LFSでの管理に追加されました。
[.gitattributes]を開いて同じコードを直接書いても追加できます。
## 5. Git LFSが追跡されていることを確認する
1. 以下のコマンドを実行してGit LFSが追跡されていることを確認します。

git add .gitattributes

追跡されていないと

fatal: pathspec '.gitattributes' did not match any files
// 致命的:pathspec '.gitattributes'はどのファイルとも一致しませんでした

と表示されます。
### 私が設定している[.gitattributes]の設定
私が設定している[.gitattributes]の設定は以下になります。
拡張子が[png][jpg][jpeg][psd]のファイルをGit LFSで管理しています。

*.png filter=lfs diff=lfs merge=lfs -text
*.jpg filter=lfs diff=lfs merge=lfs -text
*.jpeg filter=lfs diff=lfs merge=lfs -text
*.psd filter=lfs diff=lfs merge=lfs -text

## 6. コミットしてプッシュする
あとはいつも通りコミットしてプッシュするとGit LFSにアップロードされます。
1. コミットしてプッシュします。
2. プッシュするとGit LFSにファイルがアップロードされます。