個人開発者のためのGit 〜インストール編〜

先日「朝4時に起きて開発するぞ!」と息巻いて23時に寝て、翌日10時まで爆睡していた毒きのこです。

本日からGitに関する記事を書いていこうと思います。実際どれくらい続くかは未定ですが、目標としては個人開発者の方々が一通り使えるところまでは書いてみたいと思います。

なぜ今更Gitの記事?て思う方もいるかもしれませんが、僕が結構色々お話を聞いていて特に、個人開発を行っていて普段会社などでエンジニアとしてお仕事してない方は、Gitをあまり使った事がないという人が多かったので、今回改めて書こうと思った次第であります。

ただGitを使ったことがなくても、昔現場などでSVN(Subversion)を使ってた経験などはあって、そちらを今は使っているっていう方も多かったです。それならば余計にGitを使って、その開発ライフをより素晴らしいものにしていただきたい!ということで、ちょっくら頑張ってわかりやすいように書いてみましたので分からないトコあったらガンガンご指摘いただけると幸いです。

Gitとは

まず簡単にGitとは何か。 よく聞くバージョン管理と呼ばれるものでSVNなどと比べると分散型というのが最大の特徴と言われています。SVNは集中型と呼ばれ、サーバー上にある1つのリポジトリに対して、それを開発者皆が共同で使う必要がありました。そのため利用者が増えると競合(修正点がお互い被ってしまいぶつかってしまうこと)が多発したりと大変でした。

図でそれぞれ比較してみると以下のような感じです。


※SVNの場合
svn


※Gitの場合
git

SVNもGitも両方使ったことがない方だと、「ん?なにが違うんだ?」とあまりピンとこないかもしれませんが、Gitの方はローカル、サーバー共にリポジトリと呼ばれるものがあります。これはサーバー側にある共有リポジトリの完全な複製をユーザー側も持っていることを意味しています。これこそが最大のSVNとの違いと言えるかと思います。

ところでリポジトリ?て人もいると思います。リポジトリとはそもそも貯蔵庫や倉庫といった意味で、ソースコードやExcelといったファイル、画像データなど様々なものを保存するデータベースと思ってもらえればわかると思います。

つまりGitの方は、サーバー側に自身が編集したソースやデータなどをあげることはもちろん、ローカルのリポジトリにも一時的に格納することが出来るんです。そしてサーバー側の共有リポジトリに、好きなタイミングでローカルのリポジトリを同期させてやることが出来ます。
これはネットワークがつながらないオフライン環境において、各々の作業の変更(コミット)を貯めておいて、ネットワークにつながるようになった時にその差分情報をまとめてサーバー側の共有リポジトリにあげることが出来るので、SVNのような1つの共有リポジトリ形式のものより通信負荷軽減、多人数による役割分担がしやすいことを意味します。

と、あまり文章でズラズラ書いてもなんのこっちゃ、て感じですね… まずは概要はこんな感じですよ、と。

Gitのインストール

文章や言葉で覚えるのもいいですが、やっぱり使って最初はよくわからなくても実際体感して、慣れて覚えていっちゃうのが個人的にはベストだと思います。というわけで、さっそくインストールといきたいのですが、僕の環境がMacなのでちょっとMac向けな記事にはなってしまいますが、他の環境の人はこの辺りそれぞれの環境に置き換えて対応してくださいm(_ _)m

まずMacでGitをインストールする方法はいくつかあるのですが、一番簡単なGit OSX Installerを使ってインストールしましょう。

こちらよりDLし、インストールを完了させてください。

※本当はMacを使っているならHomebrewというパッケージマネージャーがあるので、そちら経由でインストールしてやるがいいとは思うのですが、bashやzshといった使っているシェルの環境設定なども必要になってくるので、そちら慣れている人はそっちで入れてみましょう。

とりあえず今回はインストールまでにしておきます。 次回細かいGitを使っていく上での設定などを行っていきたいと思います。

また使ったことがない方は、Gitがどこまで便利でなにが出来るのか今回の内容だけではいまいちだとは思いますが、僕自身個人開発をやっててGitがなかったらとてもじゃないけど開発なんかしていられない!っていうくらい使い勝手のいいモノなので是非とも習得して最高の個人開発ライフを満喫して欲しいと思ってます。

Git自体はチーム開発などする上で大変便利ではあるのですが、単に個人のバックアップとしても使えるテクノロジーですし、また企業などの開発現場ではほとんどGitを導入しているはずなので、今からでも全然遅くはないので最低限習得しておくと色々いいことあるかと思いますYo( ・`ω・´)

最後にこんな活用法も…

Gitを使うとこんなシーンにおいても大活躍する!という例を1つ。

個人開発者の方で、例えば自宅PCでカジュアルゲームを作っていました、と。自宅ではトップ画面を実装していましたが、もうそろそろ会社にいかなければなりません。そこでサーバーの共有リポジトリにこれまでの作業途中の内容をコミット! さぁ、会社に行こう。
そして会社に着きました、と。ちょっと時間が空いたから家で開発していたゲームの続きを作ろう(おぃ)となります。まず会社PCでサーバーの共有リポジトリの複製を会社PC上に作ります。そして会社PCの作業ツリー上で自宅とは違うメインとなるゲーム画面を実装します。 

なんだかんだ数時間ほど開発してると…おっと、定時だ。
帰る前にサーバーの共有リポジトリに途中までの実装をコミットしておきます。そして無事家についてご飯を食べ、お風呂に入って深夜にいざあの会社の作業内容を自宅PCにも取り込もう!っといった時にGitを使っていればサーバーの共有リポジトリとローカルリポジトリを同期させることによって2箇所で行っていた作業内容を簡単に1つにまとめることが出来るのです!!! 

つまり、自宅PCを持ち運んだり、またUSBメモリーなどでプロジェクトファイルを持ち運んであっちこっちで開発しなくとも、Gitを駆使することで諸々差分を最終的に1つに集約出来るのですー!

どうですかー、既に使っている人には「当たり前やんけ」と思うあれかもしれませんが、当時僕は感動して打ち震えたくらいです (((;゚Д゚)))ぷるぷる

てか、この例は一番頭に書くべきでしたね….
というわけで第一回Git記事でした(´・ω・`)

第二回以降も頑張って書くので、まだGitの世界をよく知らない戦士達は是非ともこれを機に習得して個人開発に活かしてやってください!

ではでは!

スポンサーリンク
レクタングル(大)広告
レクタングル(大)広告