一から勉強させてください

最下級エンジニアが日々の学びをアウトプットしていくだけのブログです

git-new-workdirを導入してGitのブランチを複数同時に扱えるようにした

今、僕の仕事環境では「エンジニアそれぞれが作業用ブランチを切って開発を進め、Github に pull-req を出してレビューもらって、それが通ったらマージされる」、といったよくありがちなフローで開発を進めています。

で、今までは自分が開発をしている最中に同僚から pull-req が飛んできてレビューをしなくてはならなくなったとき、自分の作業を一旦git stashなり、git commitなりしてキリがいい状態にしてから、git checkoutしてレビュー、、のようなことをやっていました。

ですが、最近同僚にgit-new-workdirなるものを使えばそんなだるいことしなくていいよーって教えてもらったのでさっそく導入!!今回はその導入メモです。

git-new-workdir コマンドを使えるようにする

僕はhomebrewで git を導入してるのですが、git-new-workdir自体はすでに/usr/local/share/git-core/contrib/workdir/git-new-workdirにありました。

ただ参考記事を見る感じだと、コマンドはパスを通すなり、シンボリックリンクを貼るなりしないと使えないようなので今回は

$ ln -s /usr/local/share/git-core/contrib/workdir/git-new-workdir /usr/local/bin/git-new-workdir

して使えるようにしました。これで

$ git-new-workdir

usage: /usr/local/share/git-core/contrib/workdir/git-new-workdir <repository> <new_workdir> [<branch>]

って出るようになりました!

ちなみにgit-new-workdirがない人はこことかから落としたりすれば大丈夫そうです。

実際に使ってみる

$ git checkout git@github.com:project_name.git(てきとーなproject)

$ git-new-workdir project_name for_develop
$ git-new-workdir project_name for_review

これで開発用のブランチで開発をしつつ、pull-req レビュー用のブランチでレビューできる環境ができました!

$ tmux new -s for_develop
$ tmux new -s for_review

みたいにして tmux で切り替えて管理できるようにするといいかもですね!

ちなみに.gitignoreに指定されているディレクトリ、ファイルはgit-new-workdirでつくったディレクトリには反映されていないのでそこは注意。

まとめ

git-new-workdir便利!!他にもここで紹介されているようにgit-contribには便利なツールがいっぱいあるみたいなので、また試していきたいです。

参考