Question: I'm new to git on OS X, and I'm using it via the command line. I come from the world of Tortoise SVN and Beyond Compare on Windows.

I want to be able to send diffs to FileMerge.

I was able to do this with TextMate simply by using:

```
git diff | mate

```

But I'm not sure how to get that set up so I can use FileMerge instead?

Answer: 
Although it's not exactly the same as piping stdin into a script, you can do this:

```
git difftool -t opendiff -y

```

That will launch FileMerge once for each file. Doing the whole project tree at once [takes a little scripting](http://kerneltrap.org/mailarchive/git/2007/11/21/435536).

See also [this question](https://stackoverflow.com/questions/255202).
Create an executable script `git-diff-cmd.sh`

```
#!/bin/bash

xattr -w com.apple.TextEncoding "UTF-8;134217984" "$2"
xattr -w com.apple.TextEncoding "UTF-8;134217984" "$5"

/usr/bin/opendiff "$2" "$5" -merge "$1"

```

Now edit your `.gitconfig` file to include the lines

```
[diff]
    external = <path-to>/git-diff-cmd.sh

```

...replacing `<path-to>` by the path to `git-diff-cmd.sh`.
Now `git diff` will use FileMerge, and correctly display UTF-8 Unicode characters.