4

我喜欢使用tig客户端来浏览 git 提交。

但我现在缺少一件事。

是否有一个键绑定来获取我目前停留的 git commit 的 sha 编号?

4

3 回答 3

8

检查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"
于 2018-09-30T13:48:48.973 回答
2

MacOS上复制短 SHA1 (可以很容易地适应其他操作系统):

bind generic 9 +@sh -c "printf '%s' $(git rev-parse --short %(commit)) | pbcopy && echo Copied %(commit) to clipboard"

作为对其他答案的改进,此版本会向状态栏打印一条消息,这对于关闭tigUI 或不打印任何内容更好。选项标志允许这样+做(source)。最后也没有像VonC的答案那样的额外换行符。

于 2021-11-30T23:26:28.560 回答
1

苹果系统

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]~

于 2021-06-25T14:28:22.533 回答