どうも、きっしゅです。
ソースコードの管理と言えばGitですよね。Linuxのカーネルの初期開発を行ったことで有名なLinus Benedict Torvalds(リーナス・ベネディクト・トーバルズ)さんが、Linuxのソースコードを管理するために作成したもので、たった2週間で作られたと言われています。恐るべしLinusさん。。
そんなデファクトスタンダードとも言えるGitを使う上で、GitHubとGitLabどっちを使ったほうがいいのか?という疑問に直面するのではないでしょうか。
もしくは2つあるけど違いは何?って思っている方もいらっしゃると思います。
自分がどっちを使うべきか悩んだ際に、色々と調べたので記事にしました。
GitHubとGitLabの違い
違いを語る前にまずはGitHub、GitLabがどのようなサービスであるかを簡単に説明します。
GitHub、GitLabに共通して言えることは、Gitリポジトリをホスティングしたサービスであるということ。基本的な機能はほぼ同じです。
一方異なる機能は「セルフホスト」と「プライベートリポジトリ」です。
そこで今回はこの2点に関して簡単に違いを説明しようと思います。
セルフホスト
GitHub、GitLabどちらのサービスもサーバー上で動いています。
GitHubの場合はGitHubがホスティングしてるGitHubのサーバーでソースコードを管理していきます。なのでアカウント登録をすればすぐに使えます。
一方でGitLabの場合は、独自で用意したサーバー上で動かすことが可能です。つまり完全に自前の環境で動かすことも可能だということです。
GitHubと同じようにGitLabのサーバーでのソースコードの管理も可能ですし、サーバーの用意がめんどくさいという場合は、GitLab側がサーバーを用意してくれるホスティングサービスもあります。
開発案件でのセキュリティ要件等で外の環境でソースコードが管理できない、という場合はGitLab一択となります。
最近ではクラウドサービスも発展しており、クラウド上で自前のGitLabサーバー立てて使っているのプロジェクト等も多いのではないでしょうか?
同じクラウドサービス上でソースコード管理とアプリ稼働をさせる環境を構築することはCI/CD導入には適していると思います。
GitLabがDevOpsのサイクルの高速化を目指しているだけのことはありますね。
プライベートリポジトリ
いずれのサービスにもソースコードを管理するリポジトリには「Public」と「Private」の2種類が存在します。
言葉の通りPublicは全世界に公開されるリポジトリのこと、Privateは公開されないリポジトリです。
Publicなリポジトリで管理しているソースコードはオープンソースとして扱われます。オープンソースにしたくない、セキュリティ的に公開はNGだ、などの場合はリポジトリをPrivateにする必要があります。
GitHubの場合はプライベートリポジトリへ変更するのは有償です。厳密に言うとプライベートリポジトリを使うために有償プランに登録する必要があります。一方でGitLabの場合は無償です。
ここが大きな違いになると思います。最終的にオープンソースにする予定でも、開発中は見られたくないなどの場合に無償で切替ができるGitLabは強いですね。
世の中の多くのオープンソースはGitHubでホスティングされている気がします。公開する前提だとGitHubの方がお手軽なんでしょうかね?
もしくはGitHubの方が歴史が長いため、多くのオープンソースがホスティングされているのでしょうか?
ただ2019年1月にGitHubの無償版でもプライベートリポジトリが使えるようになりました。(色々と制約はありますが、、)個人的な利用であれば全く問題なく使えます。
プロジェクト等で多数のメンバーで開発するのには無償版のプライベートリポジトリだと辛い部分が多いかもしれません。
まとめ
GitHubとGitLabの違いを調べましたが、個人的な利用の範囲であればどちらのサービスでも良さそうですね。
Octocat(GitHubのアイコンのタコ足ネコ耳の生物)かタヌキ(GitLabのアイコン)のどっちが好きかで選んでもいいのではないでしょうか?(冗談です)
個人的にはGitLabの方が次々と新しい機能を追加しており、今後もさらなる機能強化に期待できるので今後はGitLabと使おうかなと思っています。
いかがでしたか?簡単ではありましたが謎は解決しましたか?
今回はGitHubとGitLabの違いということで、セルフホストとプライベートリポジトリに関して説明をしました。
GitHubとGitLabには他にも多くの違いがあります。下記のページはGitHubとGitLabの違いに関してGitLabが公開しているページです。
当然ですが、GitLabが作成したページなのでGitHubに対してマウントを取るような記載が多いです。
ですが情報量としては非常に多く、GitLabってこんな機能があるんだって知ることが出来ます。
興味があったらぜひ覗いてみてください。
参考になれば幸いです。
コメント
[…] GitHubとGitLabの違いどうもIbukishです。ソースコードの管理と言えばGitですよね。Linuxのカーネルの初期開発を行ったことで有名なLinus Benedict Torvalds(リーナス・ベネディクト・トーバルズ […]
[…] GitHubとGitLabの違いどうも、きっしゅです。ソースコードの管理と言えばGitですよね。Linuxのカーネルの初期開発を行ったことで有名なLinus Benedict Torvalds(リーナス・ベネディクト・トーバ […]