Help us understand the problem. What is going on with this article?

gitのブランチ名にタイムスタンプをつけるエイリアス

More than 5 years have passed since last update.

昨日の gitのブランチリストを鮮度順に表示する で、タイムスタンプつけたブランチなんか厄介な事になりそうだからやめておいた方がいい、などと書きましたが、残念ながら重度の進行性中二病に罹患しているのでやってみます。

例えばhogeというブランチ名の頭に年月日時分秒までのタイムスタンプをつけるなら

git branch `date +'%Y%m%d%H%M%S'`hoge

とするわけですが、これを毎回書くのは大変なわけです。
そこでエイリアス(別名)のコマンドを作ってあげます。 ./git/configに以下を追加します。

.git/config
[alias]
branch-now = "!sh -c 'git branch `date +'%Y%m%d%H%M%S'`$1' -"
checkout-now = "!sh -c 'git checkout -b `date +'%Y%m%d%H%M%S'`$1' -"

branch-nowとかcheckout-nowのところは好きな名前をつけてください。簡単でわかりやすいものがよいです。
gitはエイリアスコマンドもタブ補完してくれるので、よく使うものでなければ、上のように元のコマンドを踏襲しておくと忘れにくいです。逆によく使うものであれば、短いに越したことないです。

git branch-now hogeとすれば
20130829012345hogeみたいなブランチが作成されます。hogeを省略すると20130829012345というブランチが作成されます。

ついでにgit checkoutのエイリアスも書いてありますが、
git checkout-now hogeとすれば20130829012345hogeブランチを作ってスイッチしてくれます。

ブランチ名は作成する機能とかチケット番号とかの方がよさそうな気がするのだけれど、名前を考えるのが面倒なことはあるのでそういうときには使えるのかもしれないですね。

そんなことより言いたかったことは、エイリアスにはシェルコマンドやシェル関数なんかも書けて$1みたく引数も渡せるということでした。本当に開発すべきコードのことを放り出して、俺の考えたカッコイイalias作成に没頭するとよいでしょう。いろんなことが捗った気がして迫り来る納期のこととか忘れられます。「進捗どうですか?」と聞かれたら「環境構築でいろいろと捗りました」などと答えましょう。その後、現実に直面することで、さらによいエンジニアとして成長すること間違いなしです。

エイリアスのさらに詳しい書き方は
Aliases
を見てください。非常に詳しく書かれていて、最初からこのリンク先だけ見ればいいと思います(最後に言うな)。

yocifico
にゃーですね。
https://twitter.com
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away