从 Git Bash 管道输出到剪贴板

Posted

技术标签:

【中文标题】从 Git Bash 管道输出到剪贴板【英文标题】:Piping output from Git Bash to clipboard 【发布时间】:2013-09-23 16:12:04 【问题描述】:

我经常需要将我的 Git 输出转发给我一直友好的代码伙伴。我知道的最好方法是这样做:

Right-click Git Bash title bar > Edit > Mark > Select lines > Enter

Bam - 我选择的所有内容都在我的剪贴板中,我充满了喜悦。

问题是,这种方式很无聊,我喜欢我与 Git 的关系充满兴奋魅力

在 Windows 中,您可以像这样将控制台输出通过管道传输到剪贴板:

C:\> dir | clip

太棒了,对吧?好吧,当你尝试在 Git Bash 中做某事时,会发生以下情况:

> git branch | clip
sh.exe": clip: command not found

这让我很难过。有没有办法将 Git Bash 输出通过管道传输到我在 Windows 中的剪贴板,这样我就可以再次充满欢乐?

【问题讨论】:

【参考方案1】:

好吧,实际上git branch | clip 对我来说很好用。 clip 命令只是从 C:\Windows\System32\ 调用 clip.exe。确保在 PATH 的某个位置安装了 clip.exe

【讨论】:

这成功了!经过一番搜索,我发现you have to set your PATH variable inside git-bash,不仅仅是一个环境变量。 哇,神奇。但是这里的答案有点烦人。对于我们大多数人来说,我们不想只做一个 git 分支的副本。以下是复制文件内容的方法:cat [file] | clip。现在你可以在任何你想要的地方按 ctrl+v 了。 很棒的提示!开箱即用! 是的,是的,是的。谢谢。【参考方案2】:

将 thing.txt 复制到剪贴板

cat thing > /dev/clipboard

将剪贴板内容放入thing.txt

cat /dev/clipboard > thing.txt

我将这些东西别名为 pbcopy 和 pbpaste,所以我觉得我在我的 mac 上。

【讨论】:

imo这是最好的答案 最佳答案 - 这可以正确处理 utf-8 编码。管道到clip.exe 没有。【参考方案3】:

@madhead 的答案是正确的 - PATH 变量必须在 git-bash 中设置。以下是有关如何解决此问题的详细说明,由 Cairnarvon's answer on superuser 提供:

要检查 PATH 当前设置的内容:

> echo $PATH

并设置它,假设是 64 位架构:

> export PATH="$PATH:/c/Windows/System32:/c/Windows/SysWOW64"

git branch | clip 的结果:

* master
  dev
  dev_foo

【讨论】:

【参考方案4】:

复制 Git Bash 控制台全部内容的最简单方法:Right click anywhere on the console > Select All

相同的键盘快捷键:Ctrl+Shift+A 通过启用Options > Keys > Ctrl+Shift+letter shortcuts 启用此键盘快捷键。

薄荷版本:3.4.4 (x86_64-pc-mysys) [Windows 19042]

【讨论】:

以上是关于从 Git Bash 管道输出到剪贴板的主要内容,如果未能解决你的问题,请参考以下文章

使用 Bash for Windows 复制到剪贴板

在 Bash 脚本中通过管道传入/传出剪贴板

当我通过 Git Bash 中的 ssh 在远程 Linux 机器上运行命令时,如何将文件的内容直接复制到我的 Windows 剪贴板中?

将 octave/matlab 输出写入剪贴板

如何从远程 SSH 会话将数据发送到本地剪贴板

使用 xclip 将剪贴板内容粘贴到 bash 中的变量中