如何将当前剪贴板值传递给 Mac 上的 "git commit -m"?

How to pass the current clipboard value to "git commit -m" on Mac?

我想将剪贴板中存储的当前值作为 git commit -m 命令的消息传递。我尝试了以下方法:

# 1st way
pbpaste | xargs git commit -m
# 2nd way
git commit -m pbpaste

但是这两个命令都不起作用。如何将当前剪贴板值传递给 Mac 上的 git commit -m

您不想在此处使用 xargs,因为它会进行一些您不希望的拆分。您可以执行 git commit -m "$(pbpaste)",它使用命令替换($())语法。这采用命令的标准输出,去除任何尾随的换行符,并将其插入到那个位置,加上双引号,足以将其用作消息。

但是,在许多系统上,命令行参数都有最大长度限制,而且可能会很小。更好的方法是 pbpaste | git commit -F-,因为 -F- 从标准输入读取并且 command-line 参数长度没有问题。这确保即使您为提交消息写了一本小小说(有些 Git 贡献者偶尔会这样做),您的命令也会成功。