GitHubとGitLabはいずれも、ソースコードなどのバージョン管理が可能なシステム・サービスです。少人数でソースコードのバージョン管理のみを目的に使うのであれば、どちらを使っても大きな差はありません。ただし、両者には利用目的やプラン・機能に大きな違いがあるので、自社にあう方を選ぶことが必要です。
本記事ではGitHub・GitLabの概要や両者の違いについて、比較表を使い、わかりやすく解説しています。自社に適した方を選べば、業務の効率化を実現できるでしょう。
そもそもGitとは?
Gitとはソースコードを共有・管理する際などに使われる、分散型バージョン管理システムです。Gitにより変更履歴を管理できるので、誤ってファイルを上書きしてしまった際などに、簡単に古いバージョンへ戻すことができます。
従来、ソースコードを共有ストレージ上に保存する場合、ソースコードを編集したり修正したりするたびにファイルを追加していました。しかし、このやり方では少しだけ違う名前のファイルが増え、どのファイルを編集すればよいかわからなくなることが多かったのです。その結果、誤ったファイルに上書きしてしまうトラブルも頻発していました。
Gitを使えば、ソースコードを編集・修正するたびに、いたずらにファイルを追加する必要がありません。その分、共有ストレージを使う場合に比べ、効率的にソースコードを共有・管理できます。
GitHub・GitLabは、いずれもGitの仕組みを利用したシステムです。GitHub・GitLabについて理解するためには、Gitの概要について理解しておく必要があります。
Gitについては、以下記事でより詳細に解説しておりますので、興味がある方はあわせて参照ください。
【入門】Gitとは?できることや使い方、GitHubとの違いをわかりやすく解説
Gitは複数人のプログラマーで共同作業をする開発の現場をはじめ、昨今ではWebデザイナー・Webライターなどの利用も増えています。オンラインストレージを使って共同作業をするのに比べ、Gitを使えば作業の効率を大幅に改善できるからです。 この記事では、Gitの概要やメリット、Gitの基本的な知識や、よく一緒に使われるGitHubとの違い、インストール方法について解説しています。Gitを導入するか検討…
GitHubとは
GitHubとはGitの仕組みを利用し、オンラインでソースコードやその変更履歴を共有・管理できるウェブサービスです。GitHubは世界中で最も多くのユーザーを抱えるソースコードのホスティングサービスであり、世界中の開発現場で使われています。
GitHubはGitをもとに構築されたシステムなので、オンラインでバージョン管理が可能です。また世界中の開発者がGitHubを使ってソースコードを公開しており、ユーザーはそれらソースコードを検索して活用することができます。
GitLabとは
GitLabとはGitの仕組みを活用したDevSecOps※プラットフォームです。
GitLabはバージョン管理のほか、課題管理・プロジェクト管理をはじめDevSecOpsを実現するのに必要な機能を搭載しています。
GitLabは自社サーバーにインストールして使う「Self-Managed版」と、SaaS版の「GitLab.com」のいずれか自社に適した方を選ぶことが可能です。
※「DevSecOps」とは、「DevOps」と呼ばれる開発手法に、セキュリティを融合させることで、開発スピードを確保しつつセキュリティも高めるスタイルです。「DevOps」とは、開発(Development)と運用(Operations)が密に連携することで、開発をスムーズにすすめる概念・方法論を指します。開発(Development)・セキュリティ(Security)・運用(Operations)の3語を組み合わせたのが「DevSecOps」です。
テンプレート利用でコマンド操作不要でGitLab Core環境を構築できるKAGOYA CLOUD VPS!
日額単位で利用できるため、お試しや試験的導入などにもオススメできるため、法人から個人まで幅広い層に利用されています。
GitHubとGitLabの違い
GithubとGitLabの概要をみてきました。それではGitHub・GitLabにはどのような違いがあるのでしょうか。
以下、主な違いをみていきましょう。
GitHub | GitLab | |
---|---|---|
主な利用目的 | ・ソースコードなどのバージョン管理・共有 ・開発者同士のコミュニケーション/他開発者のソースコード検索 ・オープンソースソフトウェア開発用のプラットフォーム | ・ソースコードなどのバージョン管理・共有 ・DevSecOpsプラットフォーム |
ライセンス | 商用ライセンス | オープンソースライセンス |
提供形態 | SaaS | 自社サーバーへのインストールとSaaS版の2種類 |
利用目的の違い
GitHub・GitLabは共にGitの仕組みをもとにしており、Gitによるバージョン管理ができる点は変わりません。
そのうえでGitHubは、開発者同士が自由にコミュニケーションをとれる機能に優れている点が特徴的です。GitHubはこのような特徴から、オープンソースソフトウェアの開発などでよく利用されています。
一方でGitLabはGitを軸に構築されている点はGitHubと同じですが、DevSecOpsの実現を目的とした機能をオールインワンでそろえている点が特徴的です。まずGitLabではDevOPs実現に必要なCI/CD※を実現する機能を搭載しています。
ソフトウェア開発の際に、ビルド・テスト・デプロイ・リリースの工程を自動化し、開発の省力化・迅速化を目指す手法。
またGitLabではプロジェクト管理・課題管理やマルチグループ管理のように、組織管理を行うための機能を豊富にそろえるのも特徴的です。
さらにGitLabは、セキュリティ確保に役立つ機能が充実しています。GitLabは静的・動的アプリケーションのセキュリティテスト(SAST/DAST)や、IaCスキャン・コンテナスキャンなどの機能を利用可能です。
ライセンスの違い
GitHubとGitLabはライセンス形態にも大きな違いがあり、それが利用形態の違いにもつながるので覚えておきましょう。
まずGitHubはマイクロソフト社の製品で、商用ライセンスが適用されます。仮に自社サーバーへインストールする場合、別途有料ライセンスを購入しなくてはなりません。
一方でGitLabは、オープンソースライセンスで提供されています。そのため別途ライセンスを購入しなくても、自社サーバーへインストールして利用することが可能です。
企業によっては、セキュリティポリシーで外部サービスを使えない場合や、なるべく外部サービスの利用を避ける場合もあるでしょう。そういった企業がGitの仕組みを活用する際は、GitLabの方が適していると言えます。
プランの違い
GitHub・GitLab(SaaS版)ともに無料プラン・有料プランがあります。ここでは各プランの主な違いをみていきましょう。
プラン | Free | Team | Enterprise |
---|---|---|---|
価格 | $0/ユーザー | $48/ユーザー/月 | $231/ユーザー/月 |
概要 | ・無制限のパブリック・プライベートリポジトリ ・GitHubコミュニティによるサポート | ・Freeプランの全機能 ・無制限のパブリック・プライベートリポジトリ ・Web経由でのサポート問い合わせ ・コード所有者 ・プルリクエストのレビュー担当を複数人指定可 ・プルリクエストのドラフト作成 | ・Teamプランの全機能 ・無制限のパブリック・プライベートリポジトリ ・ウェブ・電話での24時間365日サポート(英語) ・SAMLシングルログイン ・監査ログAPI ・LDAPによるアクセス管理 ・許可するIPリスト |
GitHubは無料プランでもパブリック・非公開のリポジトリ※を無制限で利用可能です。そのうえで、Teamプランではコード管理の機能が強化され、Enterpriseプランでは監査やコンプライアンス機能が強化されます。
※リポジトリとは、ソースコードや変更履歴を登録するデータベース・保存領域のことを指します。
プラン | Free | Premium | Ultimate |
---|---|---|---|
価格 | $0/ユーザー | $29/ユーザー/月 | $99/ユーザー/月 |
概要 | ・Gitの主要機能 ・非公開リポジトリに登録できるのは5ユーザーまで | ・Freeプランの全機能 ・無制限のパブリック・プライベートリポジトリ ・ロードマップによるスケジュール管理機能 ・監査機能 | ・Premiumプランの全機能 ・無制限のパブリック・プライベートリポジトリ ・セキュリティダッシュボード ・動的アプリケーションセキュリティテスト ・静的アプリケーションセキュリティテスト ・脆弱性管理 |
GitLabの無料プランでは主要なGitの機能は使えるものの、非公開リポジトリ(プロジェクト)に登録できるのが5人までという制限があります。そのため大人数でプロジェクトを管理する場合は、Premiumプラン以上の利用が必要になるでしょう。
Premiumプランでは、パブリック・プライベートリポジトリを無制限で使える上に、スケジュール管理・監査機能が強化されます。さらにEnterpriseプランでは、Premiumプランの全機能に加え、高度なセキュリティ機能の利用が可能です。
まとめ
GitHub・GitLabはいずれもGitの仕組みをもとにしたシステム・サービスです。ソースコードなどのバージョン管理は、どちらを使っても同じように行えます。
ただしGitLab(SaaS版)のフリープランでは、非公開リポジトリに登録できるのは5ユーザーまでなので、ユーザー数が多い場合は適していません。ユーザー数が多い場合は、GitHubもしくはGitLabの有料プランを選ぶとよいでしょう。
またGitHubとGitLabは、コンセプトが異なることから、自社の運用にあわせて選ぶことが必要です。GitHubは他開発者とのコミュニケーション機能に優れ、オープンソースプロジェクトでもよく活用されます。一方、GitLabはDevSecOpsプラットフォームを目指しており、高度なプロジェクト管理やセキュリティ機能の利用が可能です。
KAGOYAのレンタルサーバ―はSSH機能を備えているため、Gitコマンドをご利用いただけます!
リーズナブルなプランからハイスペックなプランまで選択可能なため、事業用や練習用など用途に合わせて選ぶことができます。
【入門】GitHub からレンタルサーバーにコマンドひとつでアップする方法
Webサイトのコードや、WordPressの自作テーマ、カスタマイズしたテーマを GitHub で管理する場合、開発したソースコードを Webサーバーに公開する方法はいくつかあります。この記事では GitHub とレンタルサーバーを SSH 接続し、GitHub からレンタルサーバーへ Clone(Pull)することで公開する手順を解説します。 なお、GitHubについて詳しくは以下のページで解説…