もうデータ管理で泣かない!ベンリなGit入門

「最新のデータはどこ……?」「前のデータに戻したい!!」「データを上書きしてしまった……。」
エンジニアであれば、誰もが一度は悩んだことがある「データの管理」。個人だけではなく、チームであればなおさら管理は徹底したいところですよね。

そこで、ここではデータの管理をするための手段である「バージョン管理システムGit(ギット)」をピックアップ。Gitの基本知識とメリットをあげ、導入するためのヒントをまとめてみました。挫折しがちな、開発環境を整えるための第一歩を踏み出してみましょう!

20160609_1

Git(ギット)とは?

Git(ギット)とはプログラムソースなどの変更履歴を管理する「バージョン管理システム」のことです。ローカルリポジトリ(自分のパソコンの保存先)のデータを、リモートリポジトリ(ネット上に作成する保存先)に共有し、自分だけでなく他の人も編集できるようにしたシステムです。チームで開発するために欠かせない、主流のシステムになっています。

20160609_2

Git(ギット): https://git-scm.com/

“バージョン管理”をしないと、どうなってしまうのか?

“バージョン管理”しないと起こってしまう問題として、データの名前の不統一による「紛失」や「上書き」したりしてしまうことなどがあげられます。そのためにGitなどのシステムを導入しデータの管理を徹底します。

20160609_3

Gitを導入するメリット

Gitを導入することで、さまざまな問題を解決できるようになります。以下がGit導入によるメリットです。

20160609_1

・「いつ」「どこで」「誰が」「どうした」が明確になったデータを自動で整理してくれる。
・データの履歴が残るため、復元することができる。
・部分的にソースを修正できる。
・修正したソース同士を結合し、不要な部分を削除することもできる。

Gitを使うにはどうすれば良いのか?

■データを保存するためのリモートリポジトリを作るサービスに登録する

 
Gitを使ううえで、ファイルやディレクトリの状態を記録する必要があります。それらを格納する場所がリポジトリです。リポジトリでデータ管理を行うことで、ファイルやディレクトリの変更履歴を記録することができます。

またリポジトリには、※リモートリポジトリローカルリポジトリがあります。リモートリポジトリのサービスは様々なものがありますので、ご紹介します。

注釈
リモートリポジトリ
 複数のユーザーによって共有できるよう、専用のサーバーに配置するリポジトリです。
ローカルリポジトリ
 作業に連携して、ユーザーが一人で利用するリポジトリであり、自身のPCに配置しておくものです。

 

【主なリモートリポジトリサービス】

 
GitHub(ギットハブ): https://github.com/

20160609_6

エンジニアの間でもっともメジャーと言われる、ソフトウェア開発プロジェクトのための「ソースコード管理サービス」です。ソースコードの閲覧、簡単なバグ管理機能の他、SNSの機能を備えているのが大きな特徴です。いわゆる「エンジニア向けのFacebook」というと、わかりやすいかもしれません。

Bitbucket(ビットバケット): https://bitbucket.org/

20160609_7

Gitをより使いやすくするためのサービス『SourceTree(ソースツリー)』を提供している会社が運営しています。「接続できるユーザー数」が課金基準になっており、「5ユーザーまでが非公開でリポジトリの数が無制限」という、少数精鋭の会社にはうってつけのサービス。また、GitHubとちがいソースコードを共有しなくても利用できることから、Webデザイナーにもオススメのサービスです。

Gitlab(ギットラボ): http://gitlab.org/

20160609_8

GitHubのような見た目をもち、ローカルの環境のみで管理をしたい方にオススメのサービスです。フリーランスや、社内案件が中心の会社で使われるケースがおおいです。

■「クライアントサービス」を利用して、リモートリポジトリと連携させる

 
Gitは通常、Macだと「ターミナル」、Windowsだと「コマンドプロンプト」のアプリで管理します。このアプリは「コマンド」と呼ばれる命令文の羅列で操作するため、デザイナーなど普段プログラミングに関わっていない方には、情報が読み取りづらく、非常にハードルが高いものになってしまいます。

ですが、その問題を解決できるものが、「SourceTree(ソースツリー)」などのクライアントサービスです。見やすく操作しやすいため多くの会社はGitとクライアントサービスをあわせて、バージョン管理システムを利用しています。

SourceTreeはBitbucket(ビットバケット)の会社が提供しているサービスなので、Bitbucketをリモートリポジトリとして利用している方は、ほぼSourceTreeでGitの管理をしています。

【主なリモートリポジトリサービス】

 
・Git Gui(Windows / Mac): https://git-scm.com/downloads

20160609_9

Gitの公式クライアントサービスです。

・GitHub for Windows / GitHub for Mac: https://desktop.github.com/

20160609_10

GitHubが提供しているクラアントサービスです。Bitbucketとの連携も可能ですが、互換性を意識するのであればGitHubのアカウントで連携することが望ましいでしょう。

・SourceTree(Mac/Windows): https://ja.atlassian.com/software/sourcetree

20160609_11

Bitbucketが提供しているクライアントサービスです。無料で見やすくわかりやすいと定評があり、日本語化されているのが大きな特徴です。

どんな種類を選べばいいの?

開発する人数の規模にもよりますが、5人までのチーム体制であれば、無料で利用できるBitbucketとSourceTreeがオススメです。しかし、それぞれの特徴を理解して、会社でどの開発環境が向いているか話し合うとよいでしょう。紹介したサービス以外にも色々なサービスが提供されています。

前もって覚えておきたい知識は?

最後に、リモートリポジトリサービスとクライアントサービスを導入するまえに、
あらかじめ、覚えておきたい知識をご紹介します。Git(ギット)は、聞き慣れない単語が多くでますので、以下の内容を踏まえておくと、スムーズに導入ができるでしょう。

■Git(ギット)専門用語を理解する

 
・クローン:保存先の作成
リモートのリポジトリを複製して、ローカルにリポジトリを作成すること。

・プル:同期
リモートとローカル側のデータを同期させること。競合を避けるために、作業する前はあらかじめ、この作業手順を踏むことが大切です。

・コミット:保存
保存する際には、ソースがどの部分を示しているのかを伝えるため、「コミットメッセージ」と呼ばれるものも一緒に書き込みます。

・プッシュ:データをサーバーへアップ
自分の作ったデータを共有させること。

・ブランチ:データを複製
並行してちがうパターンのソースを作りたい時に便利な操作です。

・マージ:データを結合
複製したソースなどをつなぎ合わせることができます。いいとこ取りデータをつくれます。

■学習アプリ「Git-it」で、体感しながら「コマンド」と「Git」の基礎覚えてみる

 
最近話題になっている「Git-it(https://github.com/jlord/git-it-electron/releases)」は日本語対応のGit学習アプリ。通常Git(ギット)の操作は、Macの「ターミナル」Windowsの「コマンドプロンプト」で行います。そのため、データを削除してしまうと復旧できなくなる恐れがあるので、なかなか練習に躊躇してしまうもの。ですが、こちらのアプリケーションを利用すれば、基本操作を実践的に手で覚えることができます。

おわりに

初心者にとって、「バージョン管理システム」を構築することは至難のわざ。サービスを利用するためには、多少のターミナルやコマンドプロントの知識も必要になってきます。

ですが、手順にそって基本をおさえれば導入できるものでもあるので、一度挫折してしまった方も、ぜひもう一度チャレンジしてみてください。これによって、チームの生産性が上がるのは間違いありません。この記事を読んでGitを導入するための解決のきっかけになっていただければ幸いです。


 

最新情報はFacebook/Twitterをフォロー!

 


この記事を書いた人:nomal

tadano

大手印刷会社で求人広告(エディトリアルデザインやコピーライティング)を担当し、2年半働いたあとWebデザイナーに転身。 猫とお寿司には目がありません。イラストを描いてリフレッシュしながら楽しく過ごしてます。 Twitter:@nomal_f

関連する記事

facebook

案件情報や最新記事をお届けします。
ぜひチェックしてみてください。