【30分で動かすシリーズ】30分で使うGit(SourceTree編)

記事タイトルとURLをコピーする
ここ最近といいますか、もはやプログラム開発者だけでなく、インフラエンジニア、もしかしたらデザイナーもGitを使えなければ…と、なっているかもしれません。
Gitはいわゆるファイルのバージョン管理システムの1つです。バージョン管理とは、とあるファイルを一人もしくは複数人で変更する場合、その履歴(バージョン)を保存してくれて「1つ前に戻したい」とかできるモノです。
1つのファイルを「計算書_20130714-01.xlsx」「計算書_20130714-02.xlsx」「計算書_20130712-01.xlsx」とかファイル名を変更して管理とかやらなくて良くなります。 Gitはバージョン管理システムの中でも分散型といわれる、ネットのどこかにリポジトリ(リモートリポジトリ)があり、ローカルにもリポジトリがある方式です。
ネットが繋がらない状況でもローカルのリポジトリにファイルの変更を反映して、ネットが繋がったところでネットのどこかにあるリポジトリに同期できます。
詳しい仕組みなどはともかく、Git使えないとね…という状況ですので、ひとまず使えるようになってみます。 想定
  • Gitサーバを立てても良いのですが、手っ取り早くgithubを利用します
  • とあるプロジェクトに参加すると想定して、すでにリモートリポジトリは用意されています
  • Gitを使ったファイルの変更管理をひとまずできるところまでやってみます
コマンドでGitはちょっと敷居が高い…かもしれませんので、ツールを使ってみます。今回はSourceTreeを使ってみます。

SourceTreeの導入

SourceTreeの画面はこんな感じです。 Mac版
Sourcetree ss mac Windows版
Sourcetree ss win http://www.sourcetreeapp.com/ からSourceTreeをダウンロードして導入します。 以下、Windows版で進めます。
Mac版でも画面構成が異なる部分がありますが、内容的には同様です。

  • Windows環境でOpenSSHが導入されていなければPuTTYを使いますので、予め導入してください。MacではOpenSSHが導入されていますので少しラクです。
  • githubのアクセスにはssh秘密鍵が必要です。PuTTYを利用してSourceTreeを使う場合は、ssh秘密鍵をppk形式に変換しておいてください。MacではOpenSSHの秘密鍵がそのまま使えます。
  • githubのアカウントを未取得でしたら、 github.com にアクセスしてアカウントを作っておきます。
SourceTreeはフロントエンドですので、Git一式が必要です。未導入ですと、導入するか?と訊かれます。
St01  Mercurial一式も未導入なら導入するか?と訊かれます。
St02  メルアドなどを訊かれるので入力します。
St03  ローカルのリポジトリを置く場所を作っておきます。ここでファイルの更新を行うことになります。
St04 

リモートリポジトリと同期してファイルを更新して反映してみる

SourceTreeが起動したら、早速リモートリポジトリと同期します。「Clone」ボタンをクリックします。
St05  リモートリポジトリの場所とローカルリポジトリの場所を指定します。
St06  「Pull」ボタンをクリックしてリモートリポジトリの内容をすべてローカルにコピーします。
 作業前には必ずこれをやっておきます。
St07  ローカルにコピーされました。
St08  既存のファイルの更新や新しくファイルを追加したり作業します。
St09  作業が一段落して、リモートリポジトリに反映しておこうと思ったら「Commit」ボタンをクリックします。
更新・変更したファイルが表示されます。
コミットするときは、コメントを必ず書いておきましょう。
St10  コミットしただけでは、リモートリポジトリには反映されません。「Push」ボタンをクリックして反映します。
St11  リモートリポジトリのどのブランチに反映するか選びます。
St12  github.com で反映されたか確認してみます。
St13 

「ブランチ切って作業して」と言われたら

何でもmasterと言われる大元にファイルを更新すると、ファイルがすべて揃わないとリリースできなかったりします。
大きな追加や変更が発生する作業が複数あって、次回のリリースにはまだ反映しなくていい、でもリポジトリには入れておきたい…という時はブランチを作成します。
よく「ブランチを切って」と言われます。
まず、作業をしますので、上記のように「Pull」ボタンをクリックして同期します。 新しくブランチを作るには「Checkout」ボタンをクリックします。
Checkout New Branch」タブをクリックします。
Checkout remote branch」は、大元からブランチを作るならmasterを選びます。
New local branch name」に、作成するブランチの名前を入力します。
St14  上記と同様にファイルの追加や更新を行なって、コミットします。
St15  ブランチをリモートリポジトリにも反映する場合は、作成したブランチを選択します。
St16  github.com で反映されたか確認してみます。
St17 

ブランチをマージする

ブランチをいくつも分けていくと管理が大変になります。リリースのタイミングなどでまとめましょう。 masterブランチをチェックアウトします。
St18Merge」ボタンをクリックして、マージしたいブランチを選択します。
St19  マージされます。「Push」ボタンをクリックしてリモートリポジトリにも反映します。
St20 

「ブランチ切ってあるから、このブランチで作業して」と言われたら

上記の「自分でブランチ作って」と言われることもありますが、管理者などが作業するためのブランチを作ってくれるときもあります。
Fetch」ボタンをクリックして変更がないか確認します。変更があれば「Pull」ボタンをクリックして同期します。上記と同様に始めから「Pull」ボタンをクリックして同期してみても良いです。
St21  「Checkout」ボタンをクリックします。
Checkout New Branch」タブをクリックします。
Checkout remote branch」は、切ってもらったブランチを選びます。
New local branch name」には、選んだリモートリポジトリのブランチの名前が反映されます。
St22  今どこのブランチで作業しているかは画面左側の表示で分かります。
St23  ファイル更新・追加後のコミット、プッシュ、マージは上記と同様です。

終わりに

「Git使って」と言われたときは、ひとまずこれで何とかなるかと思います。
Gitはまだまだいろんなことができます。
ファイルの更新がかぶった場合はどうする?などは、別の人が書いてくれるかもしれません。
Gitやバージョン管理ってそれほど難しくないと思っていただければ幸いです。
一人でもバージョン管理は有効な手段です。
この世から1つでも多く「計算書_20130714-01.xlsx」みたいなファイルが駆逐されることを祈りつつ、今回はここまでです。