本連載は、ちょっととぼけた女子高生の姉妹が今注目のアジャイル開発手法であるスクラムとプロジェクト管理ソフトの「Redmine」を使って、システム開発をするというフィクションです。
ねぇねぇ、この前、学校のグループワークのレポートを作ってたら、共有ファイルサーバに保存したファイルがグループのほかの人に上書き保存されてたんだー。せっかくレポートに書いた内容が、消えて、また書き直さなくいけなくなっちゃって大変だったんだよ(T_T)。
あと、ファイルを更新したときに、どこが更新されたか分からないから、別のレポートでは、ファイルを名前を付けて保存してたんだー。
それを、皆で編集しだすと、↓のようになっちゃって、結局どれが最新なのか分からなくなっちゃった(>_<)。皆のレポートをつなげるのに苦労したよー!!
便利だねー。
そんな感じでファイルを管理するツールのことを「バージョン管理システム」って呼んでるんだよ。Git以外にもいろいろあるんだけど、記事「分散バージョン管理Git/Mercurial/Bazaar徹底比較」にほかのバージョン管理システムについて書いてあるから、興味があれば読んでみてね。
あと思いっきりステマだけど、『Gitポケットリファレンス』って本もあるみたいだよ〜。
「スクラム界のドラッカー」こと@ryuzeeさんも、ブログに書評を書いていて、「Oかもとさんの前書きを見ると、Gitはツンデレで、戦隊ロボのツールと連携できて、Gitのコアユーザーはオタクだとか、Gitを使いこなして海賊王を目指せとか、こんなん前書きに書いたら立ち読みした読者は、全編がこんなトーンなのかと思って逃げ出してしまいそう」ってな感じで絶賛しているみたいねー。
Gitを使うと、保存したファイルを、どのバージョンでも取り出したり、比較したりできるよ。例えば、何かのプログラムを作っていて、それが普通に動いていたとするよね。そのプログラムを書き換えるときに間違っていると、以前動いていた機能が、いつの間にか動かなくなることがよくあるのよ。Gitを使っていれば、そんなときでも変更内容を記録してあるから、動いていた状態のプログラムに戻すことができるし、動かなくなったプログラムのソースコードの違いがどこにあるか調べられるんだよ。
へー、何が原因でプログラムが動かなくなるか分かるわけね。まさに「因果の記録係」って感じね
ちなみに、ファイルに対する変更の1つ1つの記録のことを「コミット」って呼ぶんだよ。コミットに番号や記号を付けたものは「リビジョン」と呼ばれることもあるの。コミットには、メッセージが付けられていて、例えば、「ユーザー認証機能」を実装する変更であれば「ユーザー認証機能を実装」みたいな感じで、なぜその変更をしたか記録しておくの。そうすると、後で何のためにどういう変更をファイルに加えていったか確認できるんだよ。
あと、「ブランチ」っていう機能があって、開発者が皆で編集しているコードや、ほかのバージョンに影響を与えずに複数のバージョンの保守や機能追加などの開発ができる機能もあるの。
私も休みの日は朝ごはん食べるの面倒くさいから、よくブランチするよ!!
「ブランチ」っていうのは、「ブレックファースト(朝食)とランチ(昼食)の中間」という意味じゃなくて、「枝」の方ね。ある開発からリリースしたバージョンの保守用と、次バージョンの開発用に枝分かれさせて開発することがあるけど、ソフトウェアの開発の分岐を「木」に見立てて、「ブランチ(枝)」と呼ぶんだよ。
例えば、図2の例だと、最新版を開発するブランチがあって、そこから、1.xと2.x用の保守をする枝(ブランチ)が伸びたり、変更を行うブランチが伸びたりしている感じね。
ふーん、「世界線」とか、「因果の分岐点」とかの方が分かりやすいと思うんだけどなぁ
いや、普通の人は分からないから……。
何となーく、イメージは、分かるけど、具体的にGitってどのようにして使うのかなぁ。亜琉美ちゃん、教えてくんない?
承知しました。Gitの一般的な作業環境では、皆で作ったファイルを共有する「共有リポジトリ」と、ファイルの各編集者が作業するPC上にある「ローカルリポジトリ」の2つがあります。連載第3回で紹介したALMiniumを利用した場合、ALMiniumをインストールしたサーバ上で共有リポジトリを管理できます。
リポジトリは、各ファイルの編集履歴が記録されたデータベースのようなものです。共有リポジトリには、皆の編集履歴が記録されていて、共有リポジトリの内容を各開発者が利用するPC上にコピーしてローカルリポジトリとして利用します。
ローカルリポジトリから、自分が作業するべき編集履歴の最新版ファイルをフォルダに取り出し、編集します。フォルダに取り出されたファイルを「作業ツリー」と呼び、編集者は作業ツリー上のファイルを編集します。
Gitをチームの開発で使うには、こんな感じで共有リポジトリが必要なんだけど、最近はWebサービスとして使える「GitHub」が人気なんだよ。GitHubを使うと、共有リポジトリのためのサーバを自前で構築することなく、簡単に利用できるからなんだ。でも、GitHubに登録したファイルは基本、ほかのユーザーからも見られて、社外秘や学外秘のファイルを管理する場合は、お金を払ってプライベートリポジトリを利用する必要があるの。
では、ツモ……いや、ロンより証拠の大三元。次ページからは、あなたのプロジェクトに入っているALMiniumを使ってRedmineとGitを組み合わせて利用する方法を見ていくよ!! Redmineの連載でもあるからね。ALMiniumのインストールと初期設定は、スプリント3「スクラムやるならRedmineとALMinium!」を見て、あらかじめ使えるようにしておいてね!
オリジナルのRedmineを使っている人は、「Redmine SCM Creator」プラグインを使うと、ALMiniumのようにWebの画面から作れるようになるよ。後、GitリポジトリのWeb認証に関していうと、Redmine 2.1.0からGitでWebの認証ができるようになったんだよ。
Copyright © ITmedia, Inc. All Rights Reserved.