我喜欢使用tig客户端来浏览 git 提交。
但我现在缺少一件事。
是否有一个键绑定来获取我目前停留的 git commit 的 sha 编号?
检查jonas/tig
问题 557中提出的命令是否适合您:
bind generic 9 !sh -c "echo -n %(commit) | xclip -selection c && echo Copied %(commit) to clipboard"
这将复制剪贴板中的当前提交 SHA1。
在Wiki binding page中,您还有 Mac 或 Cygwin 的示例:
bind generic 9 !@sh -c "git show -s --format=%s %(commit) | xclip -selection c" # Linux
bind generic 9 !@sh -c "git show -s --format=%s %(commit) | pbcopy" # Mac
bind generic 9 !@sh -c "git show -s --format=%s %(commit) > /dev/clipboard" # Cygwin
OP megas在评论中建议使用git rev-parse
:
bind generic 9 !@sh -c "git rev-parse --short %(commit) | pbcopy"
在MacOS上复制短 SHA1 (可以很容易地适应其他操作系统):
bind generic 9 +@sh -c "printf '%s' $(git rev-parse --short %(commit)) | pbcopy && echo Copied %(commit) to clipboard"
作为对其他答案的改进,此版本会向状态栏打印一条消息,这对于关闭tig
UI 或不打印任何内容更好。选项标志允许这样+
做(source)。最后也没有像VonC的答案那样的额外换行符。
bind generic 9 !@sh -c "printf '%s' %(commit) | pbcopy"
或者,复制简短的 sha-1:
bind generic 9 !@sh -c "printf '%s' $(git rev-parse --short %(commit)) | pbcopy"
灵感来源:/tig/doc/tigrc(5) - 示例部分中的绑定命令。
VonC的答案中列出的解决方案对我不起作用,因为粘贴的结果中有回车线 (⌘+V)。所以我无法在 tig 中输入这样的命令:!git rebase -i [paste_here_hitting_⌘+V]~