[ゴミ箱] ブランチ切り替えに疲弊したあなたに捧ぐgitコマンド

 ブログを月一ぐらいで更新していこうと心に決めたまま2ヶ月が経ちました。こんばんは、ご無沙汰しております。ネタがなかったので今回はgit使うときにちょっと便利なコマンドを紹介しつつ、そのコマンドを使っていろいろやってみたいと思います。いろいろ、ってほどのことでもないですが。

ブランチを切り替えまくる毎日

 お仕事をしていると、各方面からお仕事の依頼がホーミング弾(弾幕)のように飛んできます。コミュ障でイエスマンの僕の回避スキルでは被弾必至。

 A氏「コレ頼むわ」
 僕「ウス」
 B氏「コレお願いできますか」
 僕「ウス」
 C氏「先にコレな」
 僕「ウス」

 こんなことをやっていると、あちこちでいろんなブランチが量産され、ブランチを行ったり来たりしながら作業しなきゃないハメになります(良い子はこんなデタラメな作業の仕方しちゃダメだよ!)。そうなると一時commitしたりstashしたりしなきゃなくなって、余計なコミットが増えるだけならまだしも、山のように積まれたstashが一体いつの作業なのかわからなくなってしまいます(良い子はこんなデタラメな作業の仕方しちゃダメだよ!)。

git-new-workdirで幸せになろう

 ぐぐる先生に訊いてみたところ、「git-new-workdir」なる便利コマンドがあるようです。コイツを使うと、特定のブランチを別のディレクトリにチェックアウト出来るらしいのです。

なるほどー、こんな便利なコマンドがあるんですねー。ただ、標準で入っているものではないようなので、ぐぐる先生の導きに従ってインストールする必要があります。Macな人はbrewでgitを入れると入るっぽいです。パスは通らないので通してやるか、以下に紹介するようなスクリプトを使いましょう。

ブランチを移動するスクリプトを書こう

 こんな感じのやつ。Mac想定してます。

 こいつを適当な場所において、実行可能なパーミッションを与えてやりましょう。そして、ホームにある.gitconfigにこんな感じのやつを追加。

[alias]
    wd = !(さっき置いたスクリプトのパス)
[wd]
    workspace = (切り替え先ディレクトリ)

 すでにaliasがある場合は、項目の一番下にwdを追加してやってください。僕の環境だとこんな感じです(例)。

[alias]
    wd = !/Users/Giemsa/Develop/tools/move-workdir.sh
[wd]
    workspace = /Users/Giemsa/Develop/workspace/

 ブランチをチェックアウトすると、workspaceで指定した場所の「リポジトリ名/ブランチ名」というフォルダにブランチのコピーが作成されます。

 ここまでできたら後は簡単、git管理下にあるディレクトリに移って、コピーしたいブランチに移動します。そしておもむろに以下のコマンドを叩きます。

git wd

 これで「(workspace)/リポジトリ名/ブランチ名」以下にコピーしたブランチが作成されます。もとのディレクトリで別のブランチに移っても、コピーされたブランチの方には影響を与えません。もちろん、両ブランチは同じgit管理下にあるので、いろんな作業をやっても大丈夫。さらにindex/stagingは共有されないのでコミットもちゃんと出来ます!これは便利!いちいちブランチを行ったり来たりしなくていいし、コミットログも汚れないし、stashも増えないし、いいコトだらけですね。これでイエスマンの君も仕事できるマンにランクアップだ!

まとめ

 ネタ切れ感パない。

0 件のコメント :

コメントを投稿