DevOps の中心になる Git と関連ソフトウエア

作成日:2022/05/10

お役立ちコラム

DevOps の中心になる Git と関連ソフトウエア

前回は DevOps とはなにか、について説明しました。
DevOps はアジャイルなどの開発手法と、開発を支える各種ツールの活用が特徴と言えます。
今回はツールの中でも重要な位置を占めている Git について説明します。

Git はバージョン管理システム (VCS)

Git は一言でいえば開発者がコーディングしたソースコードのバージョンを管理するシステム(VCS)です。
Git のようなツールがない場合、ソースコードはファイルサーバーに保管し、バージョンの管理はフォルダ名やファイル名で管理する、という方法が一般的でした。
この方法はファイルの一元管理が煩雑になり、同じファイルを同時に更新できないなど面倒が伴いました。
そこでVCSが使われるようになりました。
これまでは「 RCS 」「 Subversion (SVN) 」などが使われてきましたが、現在では Git が主流です。

Git は分散型 VCS

Git の一番の特徴は「 分散型 」の VCS であるという点でしょう。
Git では、ソースコードは「 リポジトリ 」で管理します。
Git のサーバーには、各開発者が共有する「 リモートリポジトリ 」があります。
この内容を開発者が手元に複製 (クローン) を行い、開発はこの複製である「 ローカルリポジトリ 」に対して行います。
最終的な開発成果物は、ローカルからリモートへ「 プッシュ 」することでまとめられます。

Git は OSS開発でも活用されています

開発者がそれぞれ別々に開発を進められるという点が、オープンソースソフトウエアの開発にマッチしているため、たくさんの開発者がGitを使うようになりました。
そもそも Git を開発したのが、Linux カーネルの開発者である Linus Torvalds 氏 であることから、このような特長も不思議ではありません。

ブランチ機能を使った開発

Git の特徴の一つにブランチ機能があります。
ブランチを作成しますと、既存のソースコードには変更を加えず、修正作業が行えます。

修正後、テストを行って問題がなければ、修正差分を既存のソースコードに適用します (マージ)。

修正差分は行単位で扱われますから、別々の開発者が同一のファイルを修正することができます。

もし同じ行を修正してしまった場合には「 コンフリクト 」 (競合) を検出し、上書きされないようにします。

プルリクエスト機能を使ったレビュー

ブランチ機能と組み合わせてチーム開発で使いたい機能が「 プルリクエスト 」 (あるいはマージリクエスト) です。
この機能は、後に紹介する Gitサーバーが備えている機能で、開発者が追加・修正したソースコードをいきなりマージするのではなく、コードレビューを行って問題ないことを確認した上でマージするワークフローを実現します。

プルリクエストを想定したブランチ活用例

リポジトリを作成すると、デフォルトで「 main 」というブランチが作成されますが、mainブランチで開発を行うとテストが完了していないソースコードが混入するおそれがあります。
そこで「 develop 」ブランチを作成し、開発はそちらで行うようにします。
developブランチで開発が進んだら、プルリクエストを作成して修正内容をmainブランチにマージするよう依頼します。
コードレビュー後、修正が mainブランチにマージされ、リリース可能な状態になります。
プルリクエストを使ってコードレビューのフローを回すことで、コードの品質を担保できます。
ただし、レビュープロセスは負担の多い作業でもあり、どのようなルールで行うか決める必要があります。

GitHub は Gitサーバーの代表例

Gitはローカルリポジトリだけで使うこともできますが、複数の開発者でチーム開発を行う場合には、ソースコードを集約するためのリモートリポジトリが必要です。
そのためのGitサーバーには、一般的にも有名になった「 GitHub 」が代表例として挙げられます。
Gitサーバーの機能を SaaS として提供する GitHub.com では、無償でリポジトリを作成、利用できます。
公開されているパブリックリポジトリでは、たくさんの人が自分のソースコードを公開してOSSのプロジェクトがリポジトリとして利用しています。
公開できないアプリケーション開発の場合には、プライベートリポジトリを作ってチーム開発を行うこともできます。

GitLab でオンプレミス Gitサーバー構築

GitHub の対抗馬として挙げられるのが GitLab です。
GitLab.com として SaaS 形式でサービスを提供しているのは GitHub.com と同様ですが、GitLab は OSS として公開されているため、自前でGitサーバーを用意したい、いわゆる「 オンプレミス 」な方法を採りたい場合には GitLab を使用します。
GitLab は、基本的な機能を使うだけであれば無償で利用できます。
サブスクリプション形式の Enterprise Edition を契約するとより高度な機能が使えます。
まずは無償で利用を始めて、必要になったらサブスクリプション契約をする、という使い方が一般的でしょう。
どうしてもソースコードを外部に出すことができない、という開発プロジェクトも多々あります。その場合には GitLab が選択肢に入るでしょう。
ちなみに、GitHub にもオンプレミス版の「 GitHub Enterprise 」があります。

Git クライアントは多種多様

開発者が使うGitクライアントは多種多様です。
Gitコマンドは各種OS用が用意されており、基本的な処理はコマンドを実行して行えます。
統合開発環境として人気のある Visual Studio Code などは Git によるソースコード管理に対応しているだけでなく、Git を便利に使うためのプラグインがいろいろと用意されていますので、あれこれ試してみてもよいでしょう。
他にも、「 TortoiseGit 」「 SourceTree 」など、さまざまな Git対応クライアントがありますので、自分に合っているものを探してみてください。

執筆者

宮原 徹(みやはら とおる)
1972年、神奈川県生まれ。
中央大学 法学部 法律学科卒。日本オラクルでLinux版Oracleのマーケティングに従事後、2001年に株式会社びぎねっとを設立し、Linuxをはじめとするオープンソースの普及活動を積極的に行い、IPA「2008年度 OSS貢献者賞」を受賞。
2006年に日本仮想化技術株式会社を設立し、仮想化技術に関する情報発信とコンサルティングを行っている。
現在は主にエンタープライズ分野における DevOps について調査・研究を行っており、成果はブログや勉強会などでも発信している。

PCワークステーションレンタル商品のご紹介

レンタルなら本導入前の検証用、社内研修、イベント利用など短期間からOAPCなどの長期間までさまざまな用途でご利用いただけます。
安心の保守サポート付き、機器の不具合時には最短で翌営業日にご指定場所まで代替機をお届けいたします。
動産総合保険も適用され、安心です。

お問い合わせ

お気軽にお問い合わせください

ページの先頭に戻る