GitLab/GitLab.com 勉強会行ってきた

行ってきました。GitLab/GitLab.com 勉強会 – かごべん | Doorkeeper
主催してくださった政倉さん、ありがとうございました 🙂

当日のレポートはこちらです!!
GitLab/GitLab.com 勉強会 (2015/12/09) レポート – Qiita

この勉強会以前(2015/10/07)に、政倉さんにお誘いいただいて、Git Large File Storageの勉強会に参加していたので、実質、Git LFSを試すのは今回で2回目でした。

第1回目は、まだGithubがGit LFSを正式にサポートしていなかったので、ローカルにサーバを立てて体験する流れでした。第1回目の参考資料はこちら↓↓

と、

Git LFSが1.0になってGitHubで使えるようになったので試してみた – Qiita

goをインストールする必要があったり、初めてだらけで、政倉さんに助けていただきながらなんとかローカルサーバにpushできた感じでした。

それから後は、なかなか触れずにいたんですが、今回GitLabでも使えるようになったということで、第2回目が開催されたと言う流れでした。

現在はGitHubでGit LFS使えます!!
YouTubeもあるんですね。
git-lfs/docs at master · github/git-lfs

GitLabとは?

GItLab とは、GitHub とほぼ同じ機能を持つオープンソースのソフトウェアです。無償で使える GitLab CE と有償の GitLab EE とあります。

また、つい最近 GitLab CI とよばれる CI も統合され、大きなファイルを扱う Git LFS
も使えるようになったようです!

これを機会に使ってみませんか?

GitLab勉強会より

と言うことで、GitLabの存在自体は知っていたんですが、触ったことがなかったし、先にも書きましたが、Git LFSも1度やっただけでそれっきりになっていたのでありがた〜いタイミングでした。

先ずは政倉さんからGitLabの各サービスの料金・種類やGitHubはじめその他Git系のサービスの紹介や違いなどの説明があり、その後はもくもくと各自やってみて、最後に軽く発表という流れでした。

GitLab CIというのも初めて知りました。
政倉さんの資料はこちら → GitLab/GitLab.com 勉強会

  • GitHub Enterprise は Travis CI などとの連携が難しいはずなので、無償でここまで出来るのはすごい!

GitLab/GitLab.com 勉強会資料より

GitLabはGitHubのクローンなんですね。知らなかった。

Git LFSの概要はGitHub掲載の画像がとても直感的で分かり易いです。

graphic

画像などの実態は別で保管し、ポインタのみをgitで取り扱います。不要なファイルのpush, pullをすること無く、やりとりできるのがメリットです。

先ずはやってみる

Code, test, and deploy together with GitLab open source git repo management software | GitLab

  1. こちらでアカウント作成し、各種設定を済ませます。

    Google, Twitter, GitHub, Bitbucketアカウントでも行けます。
    Google, Twitter, GitHub, Bitbucketアカウントでも行けます。
  2. 新規プロジェクトを作成

    新規リポジトリを作成
    新規リポジトリを作成
  3. プロジェクトの設定

    インポートやPrivate, Internal, Publicなど設定可能。 インポートできるのっていいっすね (^^)
    インポートやPrivate, Internal, Publicなど設定可能。
    インポートできるのっていいっすね (^^)
  4. 今回はデスクトップに作成したので”Existing folder or Git repository”を参照
    スクリーンショット 2015-12-21 13.59.44
  5. 今回はPSDファイルをGit LFSでtrackするよう設定

    [code]git lfs track "*.psd"[/code]

    現在lfsでtrackされているファイルタイプを確認するには、

    [code]git lfs track[/code]

    [code]Listing tracked paths
    *.psd (.gitattributes)[/code]

    こんな感じで返ってくる。
    で、Git LFSをセットアップ

    [code]
    $ git lfs install
    Updated pre-push hook.
    Git LFS initialized.
    [/code]

    これで準備OK!! 🙂

  6. 適当にPSDを追加
    PSD追加してみた
  7. git statusで確認

    [code]
    $ git status
    On branch master

    Initial commit

    Untracked files:
    (use "git add <file>…" to include in what will be committed)

    .gitattributes
    hibou_logo_web_cut.psd

    nothing added to commit but untracked files present (use "git add" to track)
    [/code]

  8. .gitattributesが作成されてるのでちょっと確認

    [code]
    $ cat .gitattributes
    *.psd filter=lfs diff=lfs merge=lfs -text
    [/code]

    これtrackを設定する時作られるやつだった。.aiとか.jpgとか複数追加できる

  9. 追加してコミット+プッシュ

    [code]
    $ git commit -u -m ‘first commit’
    [master (root-commit) 4c3189f] first commit
    2 files changed, 4 insertions(+)
    create mode 100644 .gitattributes
    create mode 100644 hibou_logo_web_cut.psd
    [/code]

    [code]$ git push origin master[/code]

    ここで、GitLabのUsernameとPasswordを聞いてくるので入力

    [code]
    Username for ‘https://gitlab.com’:ユーザー名
    Password for ‘https://marushu@gitlab.com’:パスワード
    [/code]

    すると、pushが始まる

    [code]
    Git LFS: (1 of 1 files) 76.61 KB / 76.61 KB
    Counting objects: 4, done.
    Delta compression using up to 4 threads.
    Compressing objects: 100% (3/3), done.
    Writing objects: 100% (4/4), 425 bytes | 0 bytes/s, done.
    Total 4 (delta 0), reused 0 (delta 0)
    To git@gitlab.com:marushu/my-test-project.git
    * [new branch] master -> master
    [/code]

    無事完了 🙂

  10. GitLabを確認してみる
    first commit (4c3189f0) · Commits · marushu / my-test-project · GitLab
    無事に追加されていることを確認!!
  11. PSDを編集してみる
    スクリーンショット 2015-12-21 14.38.56
  12. おもむろに git status してみる

    [code]
    $ git status
    On branch master
    Changes not staged for commit:
    (use "git add <file>…" to update what will be committed)
    (use "git checkout — <file>…" to discard changes in working directory)

    <strong>modified: hibou_logo_web_cut.psd</strong>

    no changes added to commit (use "git add" and/or "git commit -a")

    [/code]

    modifiedになってますな 🙂

  13. 9同様追加してコミット+プッシュ

    [code]
    $ git commit -m ‘ひっくり返してみたよ’
    [master 5e92b7f] ひっくり返してみたよ
    1 file changed, 2 insertions(+), 2 deletions(-)
    $ git push origin master
    Username for ‘https://gitlab.com’: ユーザー名
    Password for ‘https://marushu@gitlab.com’: パスワード
    Git LFS: (1 of 1 files) 126.58 KB / 126.58 KB
    Counting objects: 3, done.
    Delta compression using up to 4 threads.
    Compressing objects: 100% (3/3), done.
    Writing objects: 100% (3/3), 406 bytes | 0 bytes/s, done.
    Total 3 (delta 1), reused 0 (delta 0)
    To git@gitlab.com:marushu/my-test-project.git
    4c3189f..5e92b7f master -> master
    [/code]

    push完了 😀

  14. GitLabを確認してみる
    hibou_logo_web_cut.psd · d52a7f66ddc257f339608574fc6f0dd584dfe9ca · marushu / my-test-project · GitLab
    ばっちり (^^)
  15. クローンしてみる

    [code]
    $ mkdir clone-test && cd $_
    $ git clone git@gitlab.com:marushu/my-test-project.git
    Cloning into ‘my-test-project’…
    remote: Counting objects: 10, done.
    remote: Compressing objects: 100% (9/9), done.
    remote: Total 10 (delta 2), reused 0 (delta 0)
    Receiving objects: 100% (10/10), done.
    Resolving deltas: 100% (2/2), done.
    Checking connectivity… done.
    Downloading hibou_logo_web_cut.psd (159.15 KB)
    Username for ‘https://gitlab.com’: ユーザー名
    Password for ‘https://marushu@gitlab.com’: パスワード
    $ ls -lah
    total 0
    drwxr-xr-x 3 shuhei staff 102B 12 21 14:55 .
    drwx——+ 30 shuhei staff 1.0K 12 21 14:55 ..
    drwxr-xr-x 5 shuhei staff 170B 12 21 14:56 my-test-project
    hibouMBP:clone-test$ cd my-test-project/
    hibouMBP:my-test-project[master]$ lls
    total 328
    drwxr-xr-x 5 shuhei staff 170B 12 21 14:56 .
    drwxr-xr-x 3 shuhei staff 102B 12 21 14:55 ..
    drwxr-xr-x 13 shuhei staff 442B 12 21 14:56 .git
    -rw-r–r– 1 shuhei staff 42B 12 21 14:56 .gitattributes
    -rw-r–r– 1 shuhei staff 159K 12 21 14:56 hibou_logo_web_cut.psd
    [/code]

    ユーザー名, パスワード聞かれた。

ってことで、うまく行きました。
このプランでやるにはユーザー名、パスワードが必要なので、協業するには別プランか、GitHubのGit LFSを使うのがいいのかも?

いずれにせよ、個人的に使ってみようと思います (^^)
政倉さん、ありがとうございました〜!!

【追記】GitHubでもやってみたよ!!

GitHubではpush時のアカウント認証要らないっすね。
おまけにプレビューもできました (^^)

github-lfs