Git
percol

percolを使って、gitのコミットハッシュ値をクリップボードにコピーする

More than 5 years have passed since last update.

percolが大変便利なんだけど、あんまり使いこなせていないので、色々模索中 :kobito:

なんとなくzsh * percolgit * percolが相性良さそうだと思っていて、「gitの1個以上のcommit hashをコピーしたい」と思ったのでワンライナーを書いてみた。

git log --format="%ai  %an  %h  %d %s" | \

percol | \
awk 'match($0,/[[:blank:]]{2}[a-z0-9]{7}[[:blank:]]{2}/)
{ print substr($0, RSTART, RLENGTH) }'
| \
xargs echo -n | \
tee >(pbcopy)

まずこれを実行すると、以下のようにpercolが立ち上がる。

--onelineだと情報がちょっと足りないので、git-logのフォーマットを指定してtigのmain viewっぽくした(--graph入れても良さそう)。

コミットコメントが適当すぎるのは、個人用のリポジトリということでご容赦ください...

スクリーンショット 2014-05-07 05.10.08.png

ここで1個あるいは複数個指定してENTERを押すと、ハッシュ値だけが出力される。

match~substrを調べるのにすごい時間掛かった...awk力が足りない

スクリーンショット 2014-05-07 05.10.18.png

そして出力したハッシュ値のリストをpbcopyに突っ込んでコピーする。

tee >(pbcopy)なんてややこしい書き方をしてるのは、こうしておくとターミナルにも出力され、かつクリップボードにもコピーできるから。

(あまり自信のある書き方ではないので、ターミナルに出力しつつクリップボードにコピー出来る、別な方法があれば教えてください!)

スクリーンショット 2014-05-07 05.11.18.png

:arrow_up: みたくターミナルにハッシュ値の一覧が表示され、かつクリップボードにもコピーされている。

522d77c 774cdba a0d8e3a 798c30b 3e051ee

どこで使えるかよく分からないんだけど、一気にrevertかけたい時とかにまるっとコピー出来て便利に使える...かもしれない...。

もうちょっと模索 :cat: