【保存版】SourceTreeでGitの使い方まとめ2 チーム開発編


俺日記のしんじです。一人称は僕です。

コマンドラインが苦手なGit初心者でも比較的容易にバージョン管理ができる、GitのローカルクライアントSourceTreeの使い方を説明する。
前回の: 個人開発編に続き、今回はチームで利用する場合。
Gitの仕組みを直感的に理解することができるので、誰かに指導する場合などに導入を検討してみてもいいと思う。

■前提

・Mac版を利用
・testProject1というプロジェクトを用意
・リモートリポジトリ管理にGitLabを利用

 

■目次

  1. メンバー間で共通のブランチモデルを構築、git-flowの導入
  2. リモートリポジトリの情報を取得する。
  3. たまにはコマンドラインで利用したい。

 

■内容

メンバー間で共通のブランチモデルを構築、git-flowの導入。

git-flowとは…Vincent Driessen氏によるgitのブランチモデル。チームで開発するとき、特に共通のブランチモデルがない場合はまずはこのモデルを採用して進めていくのがいいだろう。
詳しくはこのスライドをみてほしい。
http://www.slideshare.net/KatokichiSoft/git-flow-16616440
ここではgit-flowをSourceTreeで利用する方法と基本操作を説明する。

下記の状態からスタート。
右上のgit-flowというボタンをクリック。

スクリーンショット 2013-10-05 15.35.35
すると、下記のようなダイアログが開く。
それぞれのブランチの意味については先述のURLを参考にしてほしい。
デフォルトの設定でよければOKをクリック。
スクリーンショット 2013-10-05 15.37.36

すると、開発用ブランチdevelopが作られたことがわかる。
今後はdevelopを中心に、トピックブランチを分岐させていくことになる。
スクリーンショット 2013-10-05 15.39.04

さて、ここから実際の開発に入っていこう。
このプロジェクトにある機能を追加したいとき、再度右上のgit-flowボタンをクリックし、下記のようなダイアログを出現させる。
スクリーンショット 2013-10-05 15.42.25

新機能を追加するということで上記の「新規フィーチャーを開始」をクリック。
フィーチャ名欄には、任意の名前をつける。ここではredmineを併用していると仮定し、「#[redmineのチケット番号]機能名」といった名付け方ですすめる。
理由としては、redmineのチケット番号を接頭語としてつけると、ブランチ名をソートしやすくなるからだ。
スクリーンショット 2013-10-05 15.44.30

上記の状態でよければ「OK」をクリック。
新しいブランチが作られたことがわかる。
スクリーンショット 2013-10-05 15.48.29

さて、さきほど作ったトピックブランチでの作業が終わり、開発ブランチにマージさせたいとき。
再度右上のgit-flowボタンをクリックし下記のようなダイアログを出現させる。
スクリーンショット 2013-10-05 16.11.18

その他のアクションについては、新たにブランチを作成したいときにクリックしてもらえばと思う。
「現在のブランチを終了」をクリックすると下記のようなダイアログが出現する。
スクリーンショット 2013-10-05 16.12.57

リベースについてはお好みで。
その他、任意の設定を選択し、「OK」をクリック。
スクリーンショット 2013-10-05 17.03.13
これで、developに新機能がマージされたわけだが、今回どうやらfast-forwardマージとなったようだ。
fast-forwardマージとは、今回のマージ先ブランチであるdevelopの状態が、分岐時点とマージ直前において何も変更されてない場合におこる。
厳密にはコマンドラインからオプションを付けることでfast-forwardにするかどうか調整可能だが、SouceTreeだと自動的にfast-forwardマージになるようだ。
ここでは、fast-forwardマージについてマージコミットがつくられないマージと覚えておけばいいだろう。
ただし、トピックブランチにおいて、2回以上コミットされている場合はnon-fast-forwardマージとなるようで、同様の手順でマージした場合、マージコミットが作成されるので試してみて欲しい。

以上。

リモートリポジトリの情報を取得する。

フェッチを利用する。
SouceTreeは基本的に自動でフェッチを行ってくれるので、あまり意識する必要はない。
しかし、あるメンバーがプッシュした情報をすぐに自分のローカルに取り込みたい時、自動フェッチが間に合わない場合がある。
そんなときは下記画面の「フェッチ」をクリック。
しばらくしたら画面左のリモート欄に他のメンバーがプッシュしたブランチが追加されていることだろう。

スクリーンショット 2013-10-10 13.17.23

 

以上。

 

たまにはコマンドラインで利用したい。

GUIが便利なSouceTreeといえども、コマンドラインから利用したい場合もある。
そんなときは、下記画面右上あたりの「端末」をクリックするとOK。
そのリポジトリが存在するディレクトリをカレントディレクトリとしたターミナルが立ち上がる。

スクリーンショット 2013-10-10 13.15.10

 

以上。


投稿者: しんじ

ベトナムでオフショア開発会社経営中 www.bit-vietnam.com 。サービス開発が趣味。web系は主にPHPで、スマホアプリはswiftで。最近はエンジニア向けの英語勉強webアプリ エングリッシュ e-lish.io を作りました。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA