株式会社RJCは、バージョン管理システムであるgitに関するノウハウも持っています。gitは多くの開発現場で導入されているシステムであるため、プログラマやシステムエンジニアなどとして働くのであれば、習得が必要不可欠と言えるでしょう。株式会社RJCでは、運用する上で非常に重要となる標準フローや、GUIクライアントであるSourceTreeに関しても教えてもらえます。

バージョン管理システムGitとは

gitとは、バージョン管理システムの一種です。バージョン管理とは、ファイルの変更履歴を管理することを指します。gitを利用することで、どれが最新バージョンのファイルなのかを悩まなくて済みますし、ファイルの変更履歴を自動で保存できたり、以前のバージョンへと戻したりすることが可能です。また、「いつ」「誰が」「どこを変更したか」という情報も記録できるため、複数人で同じファイルを扱う際に作業をスムーズに行えるというメリットもあります。

バージョン管理システムは、集中型と分散型の2種類の管理方式がありますが、gitは分散型のシステムです。集中型は、サーバー上にリポジトリというファイルの変更履歴を保存するフォルダを作成して、作業を行う全員がサーバー上のリポジトリを共有します。一方、分散型は、開発者のローカル環境に、サーバー上のリポジトリの複製を作成することで、バージョン管理をオフラインでも行えるシステムです。分散型のバージョン管理システムは、柔軟な管理が可能で、大人数が携わるプロジェクトとなっても管理がしやすいことから、近年はバージョン管理システムの主流となっています。

Gitに欠かせないブランチとは

gitを扱う上で欠かせないのが、変更履歴を分岐させて記録していくブランチと呼ばれる機能です。ブランチを作成することで、他からの影響を受けずにファイルの変更履歴を記録することができるため、複数人で作業を同時並行する際に、バージョン管理が容易となります。また、バグなどの問題が発生した場合でも、問題を切り分けて考えることができるというメリットもあります。

ブランチは直訳すると、木の枝や支流といった意味となり、ファイルの修正や変更を行う際に、開発の中心から枝分かれさせて作業を進めていく際に作成するのが基本的な使い方です。例えば、あるシステムを開発する際に、Aという機能とBという機能を追加したい場合、それぞれの作業用ブランチを作成して、そこに変更履歴を記録していくことで開発を進めていきます。そして、作業が完了したら、マージと呼ばれる処理を行って、開発の中心へと統合します。ブランチは、実際の開発現場では必ずと言っていいほど使用されているため、gitを取得する上で必須な機能のひとつと言えるでしょう。

標準フローであるgit-flowの概要

ブランチは複数人で開発を進めていく際に、バージョン管理がしやすいというメリットがありますが、運用方法に関するルールを明確にしておくことが重要です。各開発者が、自分独自のルールでブランチを作成して開発を進めてしまうと、gitを使用しているのにもかかわらず管理に手間がかかるという本末転倒な結果になるでしょう。

そこで、ブランチ作成やマージに関して一定のルールを定めるために考案されたのがgit-flowです。これは、Vincent Driessen氏が提唱した「A successful git branching model」という考えをもとに作成された開発手法のモデルのことで、現在では標準フローとして認知されています。git-flowでは、master・develop・feature・release・hot-fixという役割の異なる5つのブランチを使い分けて開発を進めていくのが基本で、場合によっては、supportというブランチが使われることもあります。

SourceTreeとは

SourceTreeは、Atlassian社が無償で提供しているGUIクライアントソフトです。そもそも、gitはコマンドラインツールと呼ばれるもので、Macではターミナル、Windowsではコマンドプロンプトと呼ばれる黒い背景の画面を起動して、キーボードでコマンドを入力することで操作します。そのため、プログラミング初心者などは、コマンドラインでの操作に慣れるところから始めなければいけません。

また、gitには非常に多くのコマンドがあるため、使いこなすまでに時間がかかります。コマンドラインで操作することは、システムの本質を理解することができるため、学習するには有効ですが、実際に使用する際は不便なことも多くあります。

SourceTreeはGUIツールなので、コマンドによる操作を行わずに済むだけでなく、リポジトリの状態を視覚的に確認できるため、初心者であっても直観的にgitを扱うことが可能です。非常に優れたツールであることに加えて、前述したgit-flowにも対応しているため、多くの開発現場でも使用されています。

まとめ

バージョン管理システムであるgitは、多くの開発現場で導入されているため、このシステムの使い方をマスターすることは、エンジニアとして働くのであれば必須と言えます。株式会社RJCでは、実際に開発現場で使用されている使い方を教えてもらえます。なお、TECH RJC LABOという技術サイトにもgitに関する情報が記載されているので、興味のある方は参考にしてみると良いでしょう。