Git
tig

tigでコミットIDをクリップボードへコピーする

More than 5 years have passed since last update.

以下のような方法だとうまくいかなかった。

.gitconfig
[tig "bind"]
  main = C1 !@echo '%(commit)' | pbcopy
  main = C2 !@bash -c "echo -n '%(commit)' | pbcopy"

※ pbcopyはMacのコマンドなので適当に読みかえて下さい

以下のissueに一応の解決策が載っていました。
(なんか色々パッチを書いてる人がいるけど、取り込まれてはいない模様)

解決案

以下のようにaliasを経由させるとうまくいきます。

.gitconfig
[alias]
  pbcopy = !printf "$1" | pbcopy

  ## 代案
  # pbcopy = !bash -c 'echo -n "$1" | pbcopy' --  # 上記issueに載ってた方法
  # pbcopy = !echo "$1" | pbcopy  # 末尾に改行が入っても良ければこれでも良い

[tig "bind"]
  main = C !@git pbcopy %(commit)

上記設定では、全て .gitconfig に書きましたが、tigの設定は .tigrc に書くこともできます。
お好みでどうぞ。

.tigrc
bind main C !@git pbcopy %(commit)