Gitが注目される理由
バージョン管理システムとは、ソフトウェア開発をはじめ、各種設定ファイルや論文・原稿(テキスト原稿)など、修正、改訂が発生するファイルを管理するためのしくみです。とくにソフトウェア開発の場合、複数人の開発で利用されることが多く、古くはCVS(Concurrent Versions System)、そしてSubversionというバージョン管理システムが、もっとも一般的なシステムとして利用されてきました。そんな中、Subversionにとって代わる位置づけとして現在、利用者が増えているのがGitです。Googleトレンドで傾向を見るとわかるように(図)、2008年を境にしてGitがSubversionを上回る人気ツールになっています。ここでは、Gitがどうして注目されているのか、ご紹介していくことにします。
図 GoogleトレンドによるSubversion(赤線)とGit(青線)の検索推移
開発形態の変化と多様化
従来からよく使われているSubversionあるいはCVSの場合、複数の利用者の間でファイルを共有する「リポジトリ」と、利用者が作業を行う作業用のフォルダ(「作業ツリー」)に分かれていました。この場合、ファイルの変更履歴情報を閲覧したり、ファイルの変更を保存(「コミット」)するたびにサーバにアクセスする必要があります。これに対しGitの場合、リポジトリ(共有リポジトリ)の完全な複製を利用者のマシン上に持っています(「ローカルリポジトリ」と呼びます)。ローカルリポジトリを持つことで、ファイルの変更履歴情報をサーバに問い合わせずに高速に参照できます。サーバに直接アクセスする回数が減らせるので通信の負荷を減らすことができ、最近増えているオフショア開発などの際、海外との回線に不安がある環境でも快適な運用が可能となります。
また、ソフトウェアエンジニアの中には外出先や通勤時などにノートPCを使う人が多く見られますが、こうしたモバイル環境や非ネットワーク接続環境でも利用しやすいのも、Gitを利用したいユーザが増えていることの理由と考えられます。
人気ホスティングサービスGitHub
Gitが多くのユーザに使われるようになった要因として欠かせないのが、GitHubの存在です。GitHubは、Gitリポジトリのホスティングサービスで、Gitの共有リポジトリとして活用できるのはもちろん、開発者がソースコードの分岐フォークを作成し、そのフォークをプロジェクトへ還元する「プルリクエスト」という機能を持っています。ほかにも、TwitterのようにほかのGitHubユーザを「フォロー」したり、ほかのユーザの気になるリポジトリを「ウォッチ」するなど、ユーザ同士がコミュニケーションをとりながら開発を進めるソーシャルコーディングを実現する機能が多数、盛り込まれています。その他、バグ、課題、タスクを管理するIssue機能などもあり、プログラマはもちろん、Web制作やデザインに携わる人からも注目されています。
Gitにはこのほか、CI(継続的インテグレーション)ツールやコードレビューツール、チケットシステム、さらにはSubversionと連携した使い方まで、さまざまなツールと連携させた使い方ができます。GUIでGitを使う環境も整いつつあり、今後もますますユーザが増えていくのは間違いないでしょう。
Gitを使いたいユーザから現場で活用しているユーザまでをサポートするGitポケットリファレンス
さまざまな場面でユーザが増えているGitですが、実はコマンド体系がわかりづらい、エラーの対処のしかたがわからない、など、実際に使ってみると困ってしまう場面も少なくありません。「Gitポケットリファレンス」は、こうしたユーザの「困った」に応える書籍として、著者陣が自らの経験をもとにわかりやすく、丁寧に解説した書籍です。Gitリファレンスでは各コマンドの使い方だけでなくエラー対策が解説されており、もちろんGitのインストールのしかたや、各種ツールとの連携などの活用法、GitHubも紹介しています。