うまくいくチーム開発のツール戦略

第3回Bitbucket Server+SourceTreeで快適Git環境!(前編)

前回はメールとJIRAとの連携によるプロジェクト管理を説明しました。今回は、ソースコード管理・バージョン管理について説明します。

最近、⁠DevOps」という言葉を耳にします。これは「開発(Development⁠⁠」と「運用(Operations⁠⁠」を組み合わせた言葉であり、開発と運用が連携して協力する開発手法の1つです。DevOpsを実現する要素として「ソースコード管理」⁠バージョン管理」⁠構成管理」などが必要といわれており、これらの要素をカバーするのが「バージョン管理システム」です。近年では集中型リポジトリのSubversionから、分散型のGitが主流になりつつあるので、まずはGitのメリットや有効に活用する方法の紹介をします。

Gitのメリット

Subversionに対するGitの最も大きな利点は、ローカルリポジトリで作業できることと、マージが簡単なことです。

ローカルリポジトリ上で作業できる

各個人は、リモートリポジトリをクローン(リポジトリをまるごと複製すること)したローカルなリポジトリで作業します。これにより、ほかのメンバーを気にせず作業でき、外部にアクセスしなくてよいので軽快に作業ができます。

コミットツリー編集機能を使えば、最終的に共有する前に作業内容を整理できるため、コミットやブランチの作成などを気軽に行えます。またGitは分散型なので、リモートリポジトリの負荷集中を避けられるというメリットもあります。

マージが簡単

Gitではブランチ作成とマージがとても簡単です。ブランチを作る目的の1つは、メジャーバージョンアップやカスタマイズ案件などに向けた開発ツリーの分岐です。このケースはあまりマージが発生しないため、Subversion時代も普通に行われていました。

もう1つはチーム開発で重要な目的で、複数の開発者が安全に効率よく並行開発できるようにすることです。機能追加、修正のときに必ずブランチを切るようにすることで、ほかのメンバーによる変更との衝突チェックの煩わしさなしに、頻繁にコミットできます。積極的なコミットは、コードレビュー時や不具合個所の追跡時にとても役立ちます。

SubversionからGitへのスムーズな移行

GitはもともとSubversionの使いにくいところを改良し、良いところを伸ばす方針で開発されたものなので、Gitを利用するとコードを書くことにより集中できるようになります。

とはいえ従来のバージョン管理システムに慣れた開発者が乗り越えなければならない壁(考え方の違い)が確かに存在します。チームや社内全体にひろめていくためには、Gitの使い勝手を良くするツールは必須と考えてよいでしょう。次に紹介するBitbucket Server(Gitリポジトリ管理⁠⁠、SourceTree(Gitクライアント)のようなサポートツールを使うことで、移行のハードルはずいぶんと低くなります。

Bitbucket Server

Bitbucket ServerはマスタGitリポジトリの管理などの機能を備えた便利なツールです。Gitリポジトリにプロジェクト階層を導入し、開発プロジェクト単位で管理できるようにします。プロジェクトにはアクセス権限を設定でき、さまざまな関係者が混在する大規模プロジェクトでもセキュリティを確保した開発が可能です。

開発者目線で注目したいのは、プルリクエスト(通称プルリク)やコードレビューの支援機能です。プルリクとは、プライベート環境で行った変更のマージをマスタに要求することです。これはコードレビューを行うのにちょうどよいタイミングであり、レビュー対象としてもほどよい粒度です。また、コードレビューの支援機能としては、レビュアの承認機能やインラインディスカッション機能があります。ソースコードにインラインでコメントを追加し議論することで、ソースコードと紐づいた形で議論が残るため、将来の修正で役に立つでしょう。

Bitbucket Serverはプロジェクト管理システム(JIRA)と統合されており、よく使われる機能をJIRAの課題上から操作できます。課題画面の開発セクションには、ブランチやコミット、プルリクなどの情報、操作リンクがあり、課題ごとの実装状況(実装中、レビュー中など)が一目でわかります。問題発生時には、課題→プルリク→頻繁なコミット→ソースコードの該当個所と、段階的な追跡が可能になります。

ほかにもセキュリティの考慮などさまざまなサポートがありますが、詳しくは過去記事をお読みください。

SourceTree

ローカル環境でGitを用いてソースコードを管理する方法の1つはコマンドライン操作ですが、それなりに覚えることが多く、Gitの概念をよく理解していないと扱いづらいです。ここでは、アトラシアン社が無料で提供しているGitクライアントアプリケーションであるSourceTreeを紹介します。

SourceTreeはBitbucket Serverと親和性が高く、グラフィカルなUIを持っています。単体としてもよくできたGitクライアントで、コードを書くことに集中できます。

たとえば実装を始める際は、まずサーバにあるリポジトリをローカル環境にクローンしますが、SourceTreeではクローン作成操作時にリポジトリ一覧が表示されるので、それを選ぶだけで準備が完了します。よく使う機能はツールバーとして前面に出ているので、基本的な操作に迷うことはないでしょう。使用頻度の低い機能ももれなくサポートしているので、入門者だけでなく熟練者にもお勧めです。

SourceTreeの画面には、ブランチ構造やブランチ名、コミット履歴などが見やすい形で表示されます図1⁠。チーム開発ではコミットツリーの出入りが激しくなるので、状況を逐一理解するための視覚化は重要です。

図1 SourceTree
図1 SourceTree

また、SourceTreeは変更内容を一時的に保存するスタッシュコマンドもサポートしています。Git操作が正しいか不安になりがちな入門者にとっては、とりあえず変更個所を保存できるスタッシュコマンドはたいへん心強い存在です。スタッシュ一覧や、保存内容の差分表示などは便利で手放せません。

後編では、Git+サポートツールによるバージョン管理システムがプロジェクト管理システムと連携をすることで、どのような開発作業の流れを生むのかを見てみましょう。

Atlassian Expertsの盾には
アジアパシフィック市場において
トップセラーを証す刻印が…
Atlassian Expertsの盾にはアジアパシフィック市場においてトップセラーを証す刻印が…

日本だけでなく、アジア圏でもアトラシアン製品販売のトップエキスパートであるリックソフトのWebサイトでは、各アトラシアン製品の体験版を提供しているほか、アトラシアン製品専用のコミュニティも運営しています。まずはアクセスしてみては!

リックソフトJIRAデモ環境
https://www.ricksoft.jp/demo/

おすすめ記事

記事・ニュース一覧