Submit Search
大容量ファイルもGitで管理。 Git LFSの使い方
56 likes
67,541 views
H
hibiki443
Git LFS とは? 導入方法 実際に使用してぶつかった問題と解決方法
Technology
Read more
1 of 40
Download now
Downloaded 58 times
1
2
3
4
5
6
7
8
Most read
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
Most read
25
Most read
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
More Related Content
PDF
JVMパラメータチューニングにおけるOptunaの活用事例 ( Optuna Meetup #1 )
Hironobu Isoda
PPTX
これからの Vision & Language ~ Acadexit した4つの理由
Yoshitaka Ushiku
PDF
PG-REXで学ぶPacemaker運用の実例
kazuhcurry
PDF
Tensorflow Liteの量子化アーキテクチャ
HitoshiSHINABE1
PDF
負荷試験入門公開資料 201611
樽八 仲川
PDF
メトリクスによるソフトウェア品質評価・改善および製品品質実態
Hironori Washizaki
PDF
「龍が如く7 光と闇の行方」の自動テスト活用事例とテスト自動化チーム(仮)による若手育成の取り組みについて
SEGADevTech
PDF
MagicOnion入門
torisoup
JVMパラメータチューニングにおけるOptunaの活用事例 ( Optuna Meetup #1 )
Hironobu Isoda
これからの Vision & Language ~ Acadexit した4つの理由
Yoshitaka Ushiku
PG-REXで学ぶPacemaker運用の実例
kazuhcurry
Tensorflow Liteの量子化アーキテクチャ
HitoshiSHINABE1
負荷試験入門公開資料 201611
樽八 仲川
メトリクスによるソフトウェア品質評価・改善および製品品質実態
Hironori Washizaki
「龍が如く7 光と闇の行方」の自動テスト活用事例とテスト自動化チーム(仮)による若手育成の取り組みについて
SEGADevTech
MagicOnion入門
torisoup
What's hot
(20)
PPTX
画像処理AIを用いた異常検知
Hideo Terada
PDF
Fluentdのお勧めシステム構成パターン
Kentaro Yoshida
PDF
[UE4]自動テストでもっと楽したい!
com044
PPTX
60分でわかった気になるISO29119 #wacate
Kinji Akemine
PPTX
Agile開発でのテストのやり方~私の場合~
Mineo Matsuya
PDF
【DL輪読会】Visual ChatGPT: Talking, Drawing and Editing with Visual Foundation Mo...
Deep Learning JP
PDF
Git LFSを触ってみた
Yuto Suzuki
PDF
ソーシャルゲームのためのデータベース設計
Yoshinori Matsunobu
PDF
ゴリラテスト モバイルゲームのUIを自動的に検出・操作する モンキーテスト
KLab Inc. / Tech
PPTX
SageMakerを使った異常検知
Ryohei Yamaguchi
PDF
複数のGNSSを用いたポーズグラフ最適化
TaroSuzuki15
PDF
Qua s tom-メトリクスによるソフトウェアの品質把握と改善
Hironori Washizaki
PDF
SSII2019TS: Shall We GANs? ~GANの基礎から最近の研究まで~
SSII
PPTX
強化学習における好奇心
Shota Imai
PDF
Riderはいいぞ!
UnityTechnologiesJapan002
PDF
敵対的生成ネットワーク(GAN)
cvpaper. challenge
PDF
ホットペッパービューティーにおけるモバイルアプリ向けAPIのBFF/Backend分割
Recruit Lifestyle Co., Ltd.
PDF
SSII2022 [TS2] 自律移動ロボットのためのロボットビジョン〜 オープンソースの自動運転ソフトAutowareを解説 〜
SSII
PDF
SLAM開発における課題と対策の一例の紹介
miyanegi
PDF
[DL Hacks]Variational Approaches For Auto-Encoding Generative Adversarial Ne...
Deep Learning JP
画像処理AIを用いた異常検知
Hideo Terada
Fluentdのお勧めシステム構成パターン
Kentaro Yoshida
[UE4]自動テストでもっと楽したい!
com044
60分でわかった気になるISO29119 #wacate
Kinji Akemine
Agile開発でのテストのやり方~私の場合~
Mineo Matsuya
【DL輪読会】Visual ChatGPT: Talking, Drawing and Editing with Visual Foundation Mo...
Deep Learning JP
Git LFSを触ってみた
Yuto Suzuki
ソーシャルゲームのためのデータベース設計
Yoshinori Matsunobu
ゴリラテスト モバイルゲームのUIを自動的に検出・操作する モンキーテスト
KLab Inc. / Tech
SageMakerを使った異常検知
Ryohei Yamaguchi
複数のGNSSを用いたポーズグラフ最適化
TaroSuzuki15
Qua s tom-メトリクスによるソフトウェアの品質把握と改善
Hironori Washizaki
SSII2019TS: Shall We GANs? ~GANの基礎から最近の研究まで~
SSII
強化学習における好奇心
Shota Imai
Riderはいいぞ!
UnityTechnologiesJapan002
敵対的生成ネットワーク(GAN)
cvpaper. challenge
ホットペッパービューティーにおけるモバイルアプリ向けAPIのBFF/Backend分割
Recruit Lifestyle Co., Ltd.
SSII2022 [TS2] 自律移動ロボットのためのロボットビジョン〜 オープンソースの自動運転ソフトAutowareを解説 〜
SSII
SLAM開発における課題と対策の一例の紹介
miyanegi
[DL Hacks]Variational Approaches For Auto-Encoding Generative Adversarial Ne...
Deep Learning JP
Ad
Viewers also liked
(20)
PDF
いつやるの?Git入門
Masakazu Matsushita
PDF
Jenkins 2を使った究極のpipeline ~ 明日もう一度来てください、本物のpipelineをお見せしますよ ~
ikikko
PDF
「実録!となりのJenkins2.0」 - 第7回大阪 / 第9回(東京)Jenkins勉強会 #jenkinsstudy
Kazuhito Miura
PDF
Startup jenkins!
Kanu orz
PDF
サラリーマンでギョーミーなプログラマ(つまりオレ)でも片手間で作れるXFD
Kazuhito Miura
PDF
第4回品川Redmine勉強会資料「チケット駆動開発のフレームワーク~現場の経験知からパターン言語へ(ベータ版)」
akipii Oga
PDF
モックアップ共有のススメ
Kazuyoshi Goto
PDF
よろしい、ならば自動化だっ! ~自動家の自動化哲学~ #AsianAA
Kazuhito Miura
PDF
「むしゃくしゃしたのでOpenDocumentで帳票テンプレート」 - 第13回関西LibreOffice勉強会 #LibOKansai
Kazuhito Miura
PDF
Jenkins User Conference 2012 Tokyo 「SIerのJenkins事情」
Takahisa Wada
PDF
書類作成環境のあるべき論とは
Jun Iio
PDF
Shibuyatrac#13 scurmでやってみた
Kanu orz
PDF
スクラムにおける事前期待のマネジメント - Customer Expectations Management of Scrum #sgt2016
満徳 関
PDF
自動家(オートメーター)大地に立つ!! 〜オールドタイプの一年戦争〜
Kazuhito Miura
PDF
自動化パタンランゲージ
Hiroshi Maekawa
PDF
しゃべれて回れる「小人の執事さん」ったら地獄耳でもあるみたいですよ?(前編)
Kazuhito Miura
PDF
Jenkinsを導入する本当の理由を考えてみた
kakakikikeke
PDF
Jenkinsではじめる継続的インテグレーション
Masanori Satoh
PDF
邪道Jenkins
hazisarashi
PDF
Jenkins に XFD を追加してみると
Kiro Harada
いつやるの?Git入門
Masakazu Matsushita
Jenkins 2を使った究極のpipeline ~ 明日もう一度来てください、本物のpipelineをお見せしますよ ~
ikikko
「実録!となりのJenkins2.0」 - 第7回大阪 / 第9回(東京)Jenkins勉強会 #jenkinsstudy
Kazuhito Miura
Startup jenkins!
Kanu orz
サラリーマンでギョーミーなプログラマ(つまりオレ)でも片手間で作れるXFD
Kazuhito Miura
第4回品川Redmine勉強会資料「チケット駆動開発のフレームワーク~現場の経験知からパターン言語へ(ベータ版)」
akipii Oga
モックアップ共有のススメ
Kazuyoshi Goto
よろしい、ならば自動化だっ! ~自動家の自動化哲学~ #AsianAA
Kazuhito Miura
「むしゃくしゃしたのでOpenDocumentで帳票テンプレート」 - 第13回関西LibreOffice勉強会 #LibOKansai
Kazuhito Miura
Jenkins User Conference 2012 Tokyo 「SIerのJenkins事情」
Takahisa Wada
書類作成環境のあるべき論とは
Jun Iio
Shibuyatrac#13 scurmでやってみた
Kanu orz
スクラムにおける事前期待のマネジメント - Customer Expectations Management of Scrum #sgt2016
満徳 関
自動家(オートメーター)大地に立つ!! 〜オールドタイプの一年戦争〜
Kazuhito Miura
自動化パタンランゲージ
Hiroshi Maekawa
しゃべれて回れる「小人の執事さん」ったら地獄耳でもあるみたいですよ?(前編)
Kazuhito Miura
Jenkinsを導入する本当の理由を考えてみた
kakakikikeke
Jenkinsではじめる継続的インテグレーション
Masanori Satoh
邪道Jenkins
hazisarashi
Jenkins に XFD を追加してみると
Kiro Harada
Ad
Similar to 大容量ファイルもGitで管理。 Git LFSの使い方
(20)
PDF
Git-dojo In Sendagaya.rb
Jun Fukaya
PPTX
今さら聞けない人のためのgit超入門
VirtualTech Japan Inc./Begi.net Inc.
PPTX
今さら聞けない人のためのGit超入門 OSC2018広島版
VirtualTech Japan Inc./Begi.net Inc.
KEY
デザイナのためのGit講座
Akira Suenami
PDF
Gitのよく使うコマンド
YUKI Kaoru
PPTX
今さら聞けない人のためのgit超入門
VirtualTech Japan Inc./Begi.net Inc.
PPTX
今さら聞けない人のためのgit超入門
VirtualTech Japan Inc./Begi.net Inc.
PPTX
今さら聞けない人のためのGit超入門 GitLab 13対応版
VirtualTech Japan Inc./Begi.net Inc.
PPTX
今さら聞けない人のためのGit超入門 2019/11/21
VirtualTech Japan Inc./Begi.net Inc.
PPTX
今さら聞けない人のためのGit超入門 GitLab 14対応版
VirtualTech Japan Inc./Begi.net Inc.
PPTX
今さら聞けない人のためのGit超入門 2020/12/19
VirtualTech Japan Inc./Begi.net Inc.
PDF
gitを使う準備をしよう - 初級編
Sanae Yamashita
PDF
Git for beginners
Shohei kamon
PPTX
今さら聞けない人のためのGit超入門
VirtualTech Japan Inc./Begi.net Inc.
PDF
バージョン管理
Misa Kondo
PDF
はじめてのGit #gitkyoto
Hisateru Tanaka
PDF
15分でわかるGit入門
to_ueda
KEY
20120324 git training
Takeshi AKIMA
PDF
Python for Data Analysis第1回勉強会(+git入門)
Makoto Kawano
KEY
20120516 第7回ウフィカ社内ハンズオン Git基礎
Makoto Yamazaki
Git-dojo In Sendagaya.rb
Jun Fukaya
今さら聞けない人のためのgit超入門
VirtualTech Japan Inc./Begi.net Inc.
今さら聞けない人のためのGit超入門 OSC2018広島版
VirtualTech Japan Inc./Begi.net Inc.
デザイナのためのGit講座
Akira Suenami
Gitのよく使うコマンド
YUKI Kaoru
今さら聞けない人のためのgit超入門
VirtualTech Japan Inc./Begi.net Inc.
今さら聞けない人のためのgit超入門
VirtualTech Japan Inc./Begi.net Inc.
今さら聞けない人のためのGit超入門 GitLab 13対応版
VirtualTech Japan Inc./Begi.net Inc.
今さら聞けない人のためのGit超入門 2019/11/21
VirtualTech Japan Inc./Begi.net Inc.
今さら聞けない人のためのGit超入門 GitLab 14対応版
VirtualTech Japan Inc./Begi.net Inc.
今さら聞けない人のためのGit超入門 2020/12/19
VirtualTech Japan Inc./Begi.net Inc.
gitを使う準備をしよう - 初級編
Sanae Yamashita
Git for beginners
Shohei kamon
今さら聞けない人のためのGit超入門
VirtualTech Japan Inc./Begi.net Inc.
バージョン管理
Misa Kondo
はじめてのGit #gitkyoto
Hisateru Tanaka
15分でわかるGit入門
to_ueda
20120324 git training
Takeshi AKIMA
Python for Data Analysis第1回勉強会(+git入門)
Makoto Kawano
20120516 第7回ウフィカ社内ハンズオン Git基礎
Makoto Yamazaki
大容量ファイルもGitで管理。 Git LFSの使い方
1.
大容量ファイルも Git で管理。 Git
LFS の使い方 吉澤 富美 2016.04.11
2.
自己紹介 吉澤 富美(よしざわ よしみ)@ヒビキ •
デジパ株式会社 所属、D-77.LLC 代表 • サウジアラビアで幼少期を過ごす • 元々マークアップエンジニア、 最近はウェブディレクター業務が多い • X、LUNA SEA、BUCK-TICKなどが大好き 2
3.
こんなこともやってます! 2012 年立ち上げ時から WP-D
へ参加! WP-D ではピンク担当 待ち合わせアプリ「meety」 HTML5 Japan Cup 2014 by html5j 部門賞受賞 3
4.
執筆書籍 『現場でかならず使われている WordPress デザインのメソッド』 『HTML5+CSS3でつくる! レスポンシブWebデザイン』 『いちばんやさしい Webマネジメントの教本』 など執筆 4
5.
Git LFS とは 5
6.
Git のおさらいから! Git はプログラムのソースコードなどの 変更履歴を記録・追跡するための分散型バージョン管理システム 6
7.
差分だけ記録 全バージョンのファイルを丸ごと保存しているわけではない 差分(変更点)の情報を記録!! 7 テキスト データ
8.
Git の弱点 バイナリファイル 画像や映像などの バイナリファイルの 変更はテキストと違い ファイル丸ごと記録 8 テキスト データ ではない
9.
Git Large File
Storage Git LFS = Git Large File Storage • Git LFS は GitHub が中心になり 開発している Git の拡張機能 • 大きなバイナリファイルは Git 管理に向いていないが、 これを解決する目的 9
10.
Git LFS の仕組み
10 GitHub など 自分の マシン
11.
Git LFS の仕組み •
Large File Storage に PSD などファイルの実態を格納 • Git には テキスト・ポインタを格納 • Git リポジトリそのものは 肥大化しない 11 テキスト・ポインタ
12.
Git LFS を使うメリット •
Git の苦手なバイナリファイルの管理に優れている • Large File Storage を GitHub が提供($5 で 50 GB/month) • テキスト・ポイントを格納、Git リポジトリは肥大化しない • Git LFS ファイルを飛ばして clone や pull できる • SourceTree から使うことも可能 (ただしコマンド必要になる可能性も高い、後述) 12
13.
Git LFS なし
1.02MB Git LFS 利用 2.69KB 同じ修正をしたリポジトリ2つ 13 .git/objects の重さを比較
14.
Git LFS を使うデメリット •
Large File Storage が必要 • Git LFS はまだ走り出したばかり(=不安定な時もある) • Git LFS 管理のファイルを飛ばさずに clone や pull をすると、 ファイルの変更が大量だった場合などエラー落ちしてコケる • Git LFS 管理のファイルを飛ばして clone や pull するのは手間 14
15.
導入方法 15
16.
導入方法 Windows 1. https://git-lfs.github.com/
の「Download」からインストー ラーをダウンロードしてインストール 2. インストールしたら次のようにコマンドを打つ 3. マシン再起動 16 git lfs install
17.
導入方法 Mac Homebrew を使うと楽なのでオススメ!! http://brew.sh/index_ja.html 最初に
Homebrew をアップデートしておく 17 brew update
18.
導入方法 Mac 1. Git
LFS をインストール 2. インストールしたら次のようにコマンドを打つ 3. マシン再起動 18 brew install git-lfs git lfs install
19.
導入方法 Windows &
Mac Git LFS のバージョンを確認 \インストール完了!/ 19 git lfs version
20.
Git LFS で管理するファイル 追加したいファイルを設定 設定した内容は
.gitattributes 内に設定が保存される .gitattributes を直接編集しても良い 20 git lfs track "*.psd"
21.
Git LFS で管理するファイル 設定できたか確認 設定できていれば、こんな感じに表示される 21 git
lfs track Listing tracked paths *.psd (.gitattributes)
22.
実際にコミットしてみて動作確認 1. テストファイル(Git LFS
管理対象の拡張子、例えば psd な ど)を Git 管理のフォルダ内に追加 2. そのファイルをコミットする(プッシュはしないで良い) 3. Git LFS の管理下になったかを確認 2 でコミットしたファイル名があれば OK 22 git lfs ls-files
23.
Git LFS の管理下にファイルがない場合 •
git.exe(実行ファイル)の場所を開いて、同じ場所に git- lfs.exe(実行ファイル)があるか確認 • 実行ファイルの場所が分からない場合、Windows であれば MasterSeeker でサーチすると見つけやすい • Mac の場合「/usr/bin/git」あたりに大体ある 23
24.
SourceTree の設定 • SourceTree
などのソフトを 使っていても Git LFS は使える • SourceTree の場合、 ツール>オプションから 「内蔵 Git を使用」 「システム Git を使用」 を選択できる 24
25.
SourceTree の設定 • SourceTree
に内蔵の Git でも いいんじゃないの? • 悪くないけど後々コマンドを 打つことになるので、自分で 入れて使う方が今はオススメ 25
26.
実際に運用して ぶつかった問題 26
27.
Q. クローンやプルが失敗する • 差分に
Git LFS で管理するファイルが大量だと 高確率でエラーが出てそのままクローンやプルが失敗する • もれなく中途半端に落ちてきてしまったファイルが 作業コピーに入ったまま残るオマケつき 「作業コピーに 2000 くらいファイルが入ってる」 「何度やってもクローン失敗するよ!?」 27
28.
A. クローンやプルが失敗する • 原因は
Git LFS 管理ファイルダウンロードと git clone や git pull を一緒に行った際、Git LFS 側がタイムアウト等エラー落ちする と git clone や git pull を巻き込んで落ちるため(ヒドイ) • Git LFS 関連の処理をスキップして git clone や git pull だけを 先に行えば OK!ただしコマンドを打つ必要がある 28 GIT_LFS_SKIP_SMUDGE=1 git ほにゃらら
29.
A. クローンやプルが失敗する(クローン) • Git
LFS 関連の処理をスキップしてクローン • git clone が終わったら、指定したフォルダへ cd で移動して Git LFS 関連のファイルをプル 29 GIT_LFS_SKIP_SMUDGE=1 git clone https://○○.git git lfs pull
30.
A. クローンやプルが失敗する(プル) • Git
LFS 関連の処理をスキップしてプル • git pull が終わったら Git LFS 関連のファイルをプル 30 GIT_LFS_SKIP_SMUDGE=1 git pull git lfs pull
31.
Q. ファイルが作業コピーに残って消えない • 変更してないファイルが作業コピーにあり破棄しようとしても エラーがでたりして消せない(これ多くて本当大変でした) 「このファイル変更してないのに作業コピーに入ってる…」 「しかも破棄(リセット)しても消えない」 「SourceTree
などで見ても差分は表示されないのになんで」 31
32.
A. ファイルが作業コピーに残って消えない • 破棄しても駄目な時はリモートと強制同期 ローカルでファイル変更をしていた場合は容赦なく それも消えてしまうので注意 32 git
fetch origin git reset --hard origin/ブランチ名
33.
Q. 何度もログイン情報を聞かれる • ファイル
100 件ごとにユーザー名とパスワードを聞かれる (HTTPS の場合) • 3000 件以上 Git LFS 管理ファイルがあり大変な目に… 「何十回ユーザー名とパスワード入れれば良いん!?」 33
34.
A. 何度もログイン情報を聞かれる • Mac
なら git credential を使えば OK OS X のキーチェーンにログイン情報が保存される (git version 1.7.9 以上が必要) • Windows だと SSH で繋いでしまうのが楽? 34 brew upgrade git git config --global credential.helper osxkeychain 一行目は git version アップグレード
35.
まとめ 35
36.
導入してどうだったのか? Git でバイナリデータ(画像や動画など)を扱うようになり ソースコードとバイナリデータを一元管理可能になった 36
37.
導入してどうだったのか? Web サイト上のデータを一元管理できるようになったため Git にサーバーアップ用のブランチを作り、そのブランチから デプロイしてサーバーへアップ可能になった 37
38.
導入してどうだったのか? Git ブランチからデプロイできるとアップ漏れもなくなり 大規模サイトになればなるほど便利さ実感!! 38 \やったぜ!/
39.
現時点では完璧ではないが選択肢としてアリ • まだ Git
LFS の使い勝手は「最高に手軽で便利」とは言えない • デメリットはある程度は運用でカバー可能 • メリットの方が大きいケースなら導入も1つの手 • 日々開発が進んでいる模様なのでチェック! 39
Download