GitLabはソースコードなどを共有・管理するシステムとして、先行して登場したGitHubと共に多くのユーザーに使われています。けれどGithubに比べると、概要やどのようなことができるか知っている方は少ないのではないでしょうか。ソースコードなどを社内などで共有する場合、GitHubよりGitLabのほうが自社に適しているケースも少なくありません。
この記事ではGitLabの概要やできること、GitHubとの違い、基本的な使い方についてわかりやすく解説しています。
テンプレート利用でコマンド操作不要でGitLab Core環境を構築できるKAGOYA CLOUD VPS!
日額単位で利用できるため、お試しや試験的導入などにもオススメできるため、法人から個人まで幅広い層に利用されています。
目次
GitLabとは【バージョン管理システムを主体としたDevSecOpsプラットフォーム】
GitLabとは、分散型バージョン管理システム「Git」を主体としたDevSecOps※プラットフォームです。世界中で多くの企業が、GitLabを利用しています。
GitLabを使うことでファイルのバージョン管理をはじめ、課題管理やタスク自動化、セキュリティ向上など、DevSecOpsに役立つ様々な機能を実現可能です。GitLabは、自社サーバーで運用するタイプの「Self-Managed版」と、SaaS版の「GitLab.com」があります。
「DevSecOps」とは、「DevOps」と呼ばれる開発手法に、セキュリティを融合させることで、開発スピードを確保しつつセキュリティも高めるスタイルです。「DevOps」とは、開発(Development)と運用(Operations)が密に連携することで、開発をスムーズにすすめる概念・方法論を指します。開発(Development)・セキュリティ(Security)・運用(Operations)の3語を組み合わせたのが「DevSecOps」です。
DevOpsについて詳しくは、以下の記事をご覧下さい。
運用担当者と開発担当者が対立して、システム開発や運用がスムーズにすすまない経験は、どの企業にもあるのではないでしょうか。DevOpsは、この対立を解消することを目指し生まれた仕組み・方法論です。実際、DevOpsを採用して両者の連携を構築し、開発スピードを早めた企業も少なくありません。 またDevOpsは、最近話題によく上がるアジャイル開発と類似点が多く、その違いが問われることも多いです。この記事…
GitLabでできること・主な役割
GitLabは、DevSecOpsを実現するのに必要な様々な機能を搭載しています。ここでは、GitLabでできることや、GitLabに期待される主な役割についてみていきましょう。
バージョン管理システム(Git)によるソースコードの管理
GitLabの主体となっているのは、分散型バージョン管理システム「Git」です。Gitの仕組みによって、GitLabはソースコードの管理やバージョン管理を行うことができます。
GitLabによりファイルのバージョン管理を行うことで、ソースコードを修正したり更新したりする際、いたずらにファイルを増やす必要はありません。誤ってソースコードを上書きしてしまっても、任意のバージョンへ簡単に戻すことができます。またGitLabではマージリクエスト機能によって、コードレビューを効率的に行うことも可能です。
これら機能により、GitLabを使うことで共同開発の効率や生産性が向上します。
プロジェクト管理/課題管理
GitLabは、ロードマップ機能※を用いたプロジェクト管理が可能です。また課題(イシュー)の担当者や履歴、状況などの管理が可能な「イシュー・トラッキングシステム」を搭載しています。
※ロードマップは、Premiumプランのみ利用可
CI/CD
GitLabは、CI/CD※機能を搭載する点も特徴的です。CI/CDによってビルド・テスト・デプロイ・リリースまでの過程が自動化され、リリースにかかる時間を短縮できます。そのうえで、開発のサイクルを効率的でスピーディにまわせるようになる点も大きなメリットです。
ソフトウェア開発の際に、ビルド・テスト・デプロイ・リリースの工程を自動化し、開発の省力化・迅速化を目指す手法です。CI/CDについてより詳しい内容は、以下の記事で確認いただけます。
【図解】CI/CD とは?非エンジニアの方向けにわかりやすく解説します
用語の定義や専門家の解説だけでは、具体的に思い描くのが難しい用語の一つに「CI/CD」があります。この記事では何が重要で、ソフトウェア開発などになぜ必要か、実務経験の無い方にもわかりやすく説明しています。実際の作業や手法は高度ですが、目指している考え方には価値があり、多くの分野に応用可能なノウハウと考えます。 CI/CD の概要 ソフトウェア開発などの業務をより正確に、より効率良く進めるための手法…
セキュリティの確保
GitLabはセキュリティを確保し、DevSecOpsを実現するための機能も豊富です。たとえばGitLabには、ソースコードに既知の脆弱性がないかや、APIキーや認証情報が含まれていないか自動的に検出する機能があります。脆弱性の一部については、GitLabが自動で修正することも可能です。
有料プランでは、監査機能やセキュリティダッシュボードといった、さらにセキュリティを強固にする機能も提供されています。
外部ツールとの連携
GitLabは、様々な外部ツール・外部サービスと連携できる点も大きなメリットといえます。たとえばGitLabとタスク管理ツール「Jira」を連携させることで、GitLabのイシューへJIRAのリンクを自動で掲載可能です。またGitとコミュニケーションツール「Slack」を連携させると、Gitのマージリクエストが行われた際にSlackへ自動で通知します。
よく比較されるGitHubとの違い
GitLabとよく比較されるのが、ソースコードやその変更履歴を共有できるサービス「GitHub」です。GitLab・GitHubともに、Gitの仕組みをもとに構築されており、いずれも多くのユーザーを抱えています。それでは、両者の違いはどこにあるのでしょうか。
まず、いずれもGitによるバージョン管理が行える点は共通しています。両者の大きな違いはサービスのコンセプトです。
GitHubはオープンソース開発などでよく使われており、利用者同士のコミュニケーション機能に優れています。一方でGitLabは、自社でDevSecOpsを実現するための機能性に優れているのが特徴的です。たとえばGitLabではプロジェクト管理・課題管理などの機能をオールインワンで提供しています。
またGitHubがウェブサービスなのに対し、GitLabはプロダクトである点も大きな違いといえるでしょう。前述のとおりGitLabはサーバーにインストールして使う「Self-Managed版」と、SaaS版の「GitLab.com」に分かれています。一方、GitHubは基本的にウェブサービスのみです。(ライセンスを別途購入し自社サーバーへインストールすることは可)そのためセキュリティポリシー上、外部のGitHubを使えない企業では、代わりにGitLabを使うケースも少なくありません。
※GitHub・GitLabの違いについてより詳細な情報は、以下記事にまとめています。興味があればあわせてご覧ください。
GitHubとGitLabの違いをわかりやすく解説。結局、どちらを使えばよい?
GitHubとGitLabはいずれも、ソースコードなどのバージョン管理が可能なシステム・サービスです。少人数でソースコードのバージョン管理のみを目的に使うのであれば、どちらを使っても大きな差はありません。ただし、両者には利用目的やプラン・機能に大きな違いがあるので、自社にあう方を選ぶことが必要です。 本記事ではGitHub・GitLabの概要や両者の違いについて、比較表を使い、わかりやすく解説して…
GitLab(GitLab.com)の基本的な使い方
ここでは、GitLabのSaaS版(GitLab.com)をもとに、GitLabの使い方をみていきましょう。なおGitの知識はあり、Gitの初期設定はすんでいるものとします。
※Gitの初期設定や、GitHubをリモートリポジトリとした場合の、Gitの各種操作方法を以下URLで解説しています。GitLabをリモートリポジトリとして使う際にも参考になるので、興味があればぜひ参照ください。
GitHubは世界中のエンジニアが開発を行う際に、プログラムのソースコードを共有するのに利用しているサービスです。初めてGitHubを使うときは、GitHub独自のルールや使い方を把握する必要があります。ただ、GitHubで使うコマンドや管理画面の操作は難しくないので、1度理解すれば簡単に使えるでしょう。 なおGitHubの基本的な知識については、以下記事で解説しています。GitHubの概要から学…
アカウントの登録
GitLab.comを使う場合、まずはアカウントの登録が必要です。
1.「GitLab.com」の公式サイトへアクセスします。
2.画面右上の「Get free trial」をクリックします。
3.アカウントの登録画面が表示されます。指示に従って名前・ユーザー名・メールアドレス・パスワードを入力し、「Continue」をクリックしてください。
※表示に従い、GoogleやGitHubのアカウントで登録することも可能です
4.登録したメールアドレス宛に送信した認証コードを、入力するよう指示されます。指示に従い認証コードを入力の上、「Verify email address」をクリックしてください。
5.画面の指示に従い「Role」「I’m signing up for GitLab because(GitLabを使う理由)」と、「Who will be using this GitLab trial?(誰がトライアルを使うか)」を選択します。
(今回は「My company or team」を選びます。)その後、「Continue」をクリックしてください。
6.画面の指示に従い会社情報などを入力した上で、「Continue」をクリックします。
7.プロジェクトを作成する画面に遷移します。指示に従い、「Group name」「Project name」を入力し、「Create project」をクリックします。
8.GitLabを使う準備が整った旨のメッセージが表示されます。「Ok.let’s go」をクリックしてください。
これでアカウントの登録は完了です。
リポジトリの作成
GitLabではリポジトリをプロジェクトとして作成します。プロジェクトごとに、リポジトリを作成・管理するわけです。
1.リポジトリを作成する場合、GitLabトップページの画面左側にある「New project」をクリックしてください。
※アカウント登録直後などで「Projectメニュー」が表示されていない場合、画面左上の赤いマーク(ホームページ)をクリックしてください。
2.プロジェクトの作成方法を選ぶページが表示されます。今回は「Create blank project」をクリックして下さい。
3.指示に従って、プロジェクト名などを入力して下さい。「Visibility Level」では非公開リポジトリ(Private)、公開リポジトリ(Public)のどちらを作成するか選択します。
(今回はPublicを選択します。)入力が終わったら「Create project」をクリックして下さい。
これでリポジトリの作成は完了です。
リモートリポジトリのURLを確認する
GitLabをリモートリポジトリとして利用し、プッシュやクローンなどの操作をする場合はリモートリポジトリのURLを確認する必要があります。リモートリポジトリのURL確認方法は以下の通りです。
1.トップページからリモートリポジトリとする、対象のリポジトリ(プロジェクト)を開きます。
2.リモートリポジトリとするリポジトリ(プロジェクト)で「Clone」をクリックして下さい。
上述の通り、リモートリポジトリのURLが表示されます。
ブランチの作成
1.トップページからブランチを作成する対象のリポジトリ(プロジェクト)を開きます。
2.プロジェクト名右側に記載された「+」→「New branch」の順でクリックします。
3.ブランチの作成画面が表示されます。画面の指示に従いブランチ名・ブランチ元を入力・選択し「Create branch」をクリックして下さい。
これでブランチの作成は完了です。
まとめ
GitLabは分散型バージョン管理システム「Git」を軸として構築された、DevSecOpsプラットフォームです。GitLabはGitによるソースコードの共有・管理はもちろん、プロジェクト管理・課題管理など、DevSecOpsに役立つ多くの機能を搭載しています。
また基本的にウェブサービスのみの提供となるGitHubと違い、サーバーにインストールして使う「Self-Managed版」とSaaS版の「GitLab.com」の2種類から選べるのも特徴的です。自社のセキュリティポリシー上、外部サービスを利用できない企業も少なくありません。GitLabでは自社サーバーにSelf-Managed版をインストールして、社内ネットワーク内でソースコードなどのバージョン管理を実現することも可能です。
KAGOYAのレンタルサーバ―はSSH機能を備えているため、Gitコマンドをご利用いただけます!
リーズナブルなプランからハイスペックなプランまで選択可能なため、事業用や練習用など用途に合わせて選ぶことができます。
【入門】GitHub からレンタルサーバーにコマンドひとつでアップする方法
Webサイトのコードや、WordPressの自作テーマ、カスタマイズしたテーマを GitHub で管理する場合、開発したソースコードを Webサーバーに公開する方法はいくつかあります。この記事では GitHub とレンタルサーバーを SSH 接続し、GitHub からレンタルサーバーへ Clone(Pull)することで公開する手順を解説します。 なお、GitHubについて詳しくは以下のページで解説…