67

I often need to relay my Git output to my ever-friendly code buddies. The best way I know how is by doing this:

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

Bam - everything I selected is in my clipboard, and I am filled with joy.

Problem is, that's the boring way, and I like my relationship with Git to be full of excitement and glamour.

In Windows, you can pipe console output to your clipboard like-a so:

C:\> dir | clip

Amazing, right? Well, when you try to do something that in Git Bash, here's what happens:

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

And that makes me sad. Is there a way to pipe Git Bash output to my clipboard in Windows so I can once again be filled with joy?

Bucket
  • 7,415
  • 9
  • 35
  • 45

5 Answers5

93

Well, actualy git branch | clip works fine for me. clip command just calls clip.exe from C:\Windows\System32\. Make sure you have clip.exe installed somewhere in your PATH.

madhead
  • 31,729
  • 16
  • 153
  • 201
  • 2
    This worked! After some searching I found that [you have to set your `PATH` variable inside git-bash](http://superuser.com/questions/600409/sh-exe-clip-command-not-found), not just as an environment variable. – Bucket Sep 23 '13 at 14:53
  • 1
    Wow, magical. But the answer here is slightly annoying. For most of us, we don't want to only do a copy of git branch. Here's how to copy the contents of a file: `cat [file] | clip`. And now you can ctrl+v it wherever you want yay. – starmandeluxe Nov 04 '17 at 10:01
  • 2
    Great tip! Worked out of the box! – Tore Aurstad Jul 05 '18 at 15:37
  • Yes, yes, and yes. Thank you. – Erutan409 Mar 08 '19 at 14:20
50

copy thing.txt to clipboard

cat thing > /dev/clipboard

Put contents of clipboard into thing.txt

cat /dev/clipboard > thing.txt

I aliased these things to pbcopy and pbpaste so I feel like I'm on my mac.

j03m
  • 5,195
  • 4
  • 46
  • 50
5

@madhead's answer is correct - the PATH variable must be set from within git-bash. Here's an elaboration on how to fix this issue, courtesy of Cairnarvon's answer on superuser:

To check what PATH is currently set to:

> echo $PATH

And to set it, assuming a 64-bit architecture:

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

Result of git branch | clip:

* master
  dev
  dev_foo
Community
  • 1
  • 1
Bucket
  • 7,415
  • 9
  • 35
  • 45
2

For Mac users, you can simply pipe the git diff output to pbcopy utility. Something like

git diff | pbcopy

And paste the changes anywhere. No need to first highlight all the git difference from the terminal and then paste it somewhere.

Touseef Murtaza
  • 1,548
  • 14
  • 20
0

Easiest way to copy Git Bash console's entire content:
Right click anywhere on the console > Select All

Keyboard shortcut for the same: Ctrl+Shift+A
Enable this keyboard shortcut by enabling Options > Keys > Ctrl+Shift+letter shortcuts.

mintty version: 3.4.4 (x86_64-pc-mysys) [Windows 19042]

Arun Kumar B
  • 196
  • 9