Gitリポジトリを使って開発を行っている場合、Git Flowなどを取り入れることが多いでしょう。そうすることでmasterへの直接の変更を禁止したり、ステージングを意識した開発が可能になります。しかしGit Flowの仕組みは手間が多いと感じることもあります。 そこで使ってみたいのがGitTownです。Git FlowなどをサポートしたGitの便利ツールです。

GitTownの使い方

はじめにブランチを作るために hack というサブコマンドを実行します。一番最初は質問も聞かれます。

$ git town hack cleanup
Git Town needs to be configured

  1: cleanup_lib_client.rb
  2: develop
  3: master

Please specify the main development branch by name or number:2
Please specify a perennial branch by name or number. Leave it blank to finish:

[cleanup_lib_client.rb] git fetch --prune

cd /path/to/repo

[cleanup_lib_client.rb] git checkout develop
Switched to branch 'develop'
Your branch is up-to-date with 'origin/develop'.

[develop] git rebase origin/develop
Current branch develop is up to date.

[develop] git checkout -b cleanup develop
Switched to a new branch 'cleanup'

[cleanup] git push -u origin cleanup
Total 0 (delta 0), reused 0 (delta 0)
To git@github.com:moongift/ncmb-ruby-client.git
 * [new branch]      cleanup -> cleanup
Branch cleanup set up to track remote branch cleanup from origin.

cd /path/to/repo

途中、他の人が変更した内容を反映する場合はsyncを使います。

$ git town sync

そしてnew-pull-requestを使うと変更内容がプルリクエストとして送信されます。しかもGitHubの画面が開いて、すぐにマージしたりできるようになります。

$ git town new-pull-request

完了したら ship を実行してブランチを削除します。

$ git town ship

GitTownはGit Flowに比べるとシンプルで手軽に運用できる印象です。コマンドも多くないのですぐに使い方が覚えられるはずです。慣れていても面倒さの感じるGit操作ですが、GitTownを使えばGit Flowなどが簡単に導入できるでしょう。

GitTownはGo/Ruby製のオープンソース・ソフトウェア(MIT License)です。

Welcome to GitTown | Git Town Originate/git-town: Generic, high-level Git workflow support!