GitTown - GitワークフローをサポートしたGitプラグイン
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!