先ほどsongmuから git-new-workdir の存在を教わり、ちょっと試してみた。
git-new-workdir とは
いちいち個別にcloneしなくても、共通の.git から複数のワーキングディレクトリを持てるというもの。.git を個別に落としてこないので、軽いし管理も楽。
ということで、git-new-workdir が便利というエントリを参考に、試してみることにした。私の環境では git-core の contrib が存在しなかったので、それを作るところから。
$ mkdir /usr/local/share/git-core/contrib/workdir
GitHubに必要なものをもらいに行く。何もあげられないのに、いつもいつももらってばかりで申し訳ない気持ちになる。ありがとうありがとう。
$ wget [リポジトリURL]
そしてシンボリックリンクとかの設定をする。参考エントリでは ~/bin/ にあることになっていたが、neotagに「普段あんまり意識しなくていいなら .bin にしといたら?」とアドバイスをもらい、 ~/.bin/ とすることにした。それ以外は参考エントリと同じようにした。
ln -s /usr/local/share/git-core/contrib/workdir/git-new-workdir ~/.bin/
あと、自分の環境に応じて、権限を与えたりパスを通したりなどの設定が適宜必要。
あとは使うだけ
これでワーキングディレクトリが作れるようになっているので、あとは使うだけ。
$ git-new-workdir <repository> <new_workdir> [<branch>]
あっさりできた。そしてちゃんと本体の方の .git を見てることも確認した。これからどんな局面でどう使うかは自分次第。
ちょっとどころかガッツリ使えそう
ほんのちょっと試すだけのつもりだったものの、これは普通にガッツリ使いそう。
なんだかんだ言って、ごりごりプログラミングしてるところに割って入って feature 的なブランチを作るなんて経験をしてこなかったので(なんせいちおうデザイナーなもので)、ブランチを頻繁に切り替えて何かするという経験もしてこなかった。いつも決まったブランチにしかいないし。
しかし案件の中で rebase とか merge を繰り返しながら複数のブランチでリアルタイムに並行作業をする必要が(たまたまだけど)出てきた。そうなるとブランチの切替だけでコストがかかり、無駄な時間がけっこう生まれてしまうことに気付いた。
要するに、めんどくさくなったのである。
生きる力、インフレーション
そんなめんどうをひとつ解決したことにより、生きやすさは倍増したはず。お風呂に入ろうと思っていた時間でさくっと設定できてしまったし、お風呂に入る時間と引き換えに、またひとつ生きる力を手に入れたわけだ。
付け加えれば、このブログを書いている間にお風呂のお湯を溜めることができているし、今までブランチを切り替えることで消費されていたはずの時間を使って、私は見事お風呂に入ることができるはず。なんて素晴らしいのだろう。風が吹けば桶屋が儲かる。
git-new-workdir はわずかな女子力を死守するためのツールでもあるのだなと、私はそんなふうに思ったのである。