GitLab を コードリーディングするために Git LFS を入れる
大規模システムのコードを読んで勉強するために,GitLab を コードリーディングすることにしました.
しかし,普通にgit clone
するだけでは,クローンすることができませんでした.
$ git clone git@github.com:gitlabhq/gitlabhq.git Cloning into 'gitlabhq'... remote: Enumerating objects: 1399, done. remote: Counting objects: 100% (1399/1399), done. remote: Compressing objects: 100% (1339/1339), done. remote: Total 1502728 (delta 459), reused 759 (delta 34), pack-reused 1501329 Receiving objects: 100% (1502728/1502728), 733.90 MiB | 10.26 MiB/s, done. Resolving deltas: 100% (1146442/1146442), done. git-lfs filter-process: git-lfs: command not found fatal: the remote end hung up unexpectedly warning: Clone succeeded, but checkout failed. You can inspect what was checked out with 'git status' and retry the checkout with 'git checkout -f HEAD'
エラー内容にgit-lfs filter-process: git-lfs: command not found
とあったので,Git LFS を導入した上でgit clone
をしてみます.
Git LFS とは?
Git Large File Storage
の略で大規模のファイルを管理する時に便利なツールのようです.
インストール方法
Homebrew でインストールします.
$ brew install git-lfs $ git lfs install
バージョンを確認します.もし,バージョンが表示されない場合はPCを再起動してから確認してみてください.
$ git lfs version git-lfs/2.10.0 (GitHub; darwin amd64; go 1.13.6)
もう一度クローンしてみる.
さて,これで Git LFS はインストールされたので,エラーにあったgit-lfs filter-process: git-lfs: command not found
が解消されたかと思います.
気を取り直してもう一度 GItLab をgit clone
してみましょう!
少し時間は掛かりますが,クローンすることができると思います.
$ git clone git@github.com:gitlabhq/gitlabhq.git clone ssh://git@gitlab.com/gitlab-org/gitlab.git -> /Users/ユーザ名/projects/gitlab.com/gitlab-org/gitlab git ls-remote ssh://git@gitlab.com/gitlab-org/gitlab.git git clone ssh://git@gitlab.com/gitlab-org/gitlab.git /Users/ユーザ名/projects/gitlab.com/gitlab-org/gitlab Cloning into '/Users/ユーザ名/projects/gitlab.com/gitlab-org/gitlab'... remote: Enumerating objects: 114060, done. remote: Counting objects: 100% (114060/114060), done. remote: Compressing objects: 100% (10205/10205), done. Receiving objects: 100% (1889852/1889852), 738.19 MiB | 684.00 KiB/s, done. remote: Total 1889852 (delta 110480), reused 104393 (delta 103838), pack-reused 1775792 Resolving deltas: 100% (1478442/1478442), done. Checking out files: 100% (28689/28689), done.
これで手元の PC に GitLab のソースコードが手に入りました! Zip でダウンロードするやり方もありますが,利用しているエディタが VS Code の場合,「gitlink」という拡張機能があります.
この拡張機能にある 「goto online link」 という機能を使えば,下記のように GitLab 側のソースコードを経由してマージリクエストを見ることができるので,やはりgit clone
した方が良いのかなぁと思いました.
まとめと所感
Git LFS を導入し,手元の PC に GitLab をgit clone
することができました.Git LFS は名前だけ聞いたことあるレベルだったので実際に使う機会ができて良かったです.
さぁここからですね!GitLab は Rails で作られており, Vue.js も採用しているようです!頑張って読んでみるぞ!!!