13

I read that discussion about the content of "~/.gitconfig" on Linux: https://stackoverflow.com/questions/267761/what-does-your-gitconfig-contain

I know some Mac specific optimizations, such as using "mate" as default editor:

[core]
    editor = mate -w

or using opendiff as diff editor:

[diff]
    external = opendiff

Do you know other Mac specific optimizations (and/or tools) that I could install/configure in "~/.gitconfig" file in order to get a very user-friendly git?

Community
  • 1
  • 1
Benoit Courtine
  • 7,014
  • 31
  • 42

3 Answers3

23

I use opendiff and textmate as external tools for git. You can configure them by running the following commands in bash:

#TextMate as the default editor
git config --global core.editor "mate -w"

#Opendiff (FileMerge) to resolve merge conflicts:
git config --global merge.tool opendiff

#Opendiff (FileMerge) as diff tool
git config --global diff.tool opendiff

Alternatively you can configure the gitconfig file by adding the following:

[diff]
    tool = opendiff

[merge]
    tool = opendiff

[core]
    editor = mate -w

The difftool and mergetool is only available after version 1.6.3

Ronnie Liew
  • 18,220
  • 14
  • 46
  • 50
4

Since git reuses the same temporary file for commit messages, I recommend using

[core]
    editor = mate -wl1

so TextMate puts the cursor onto the first line every time instead of remembering the cursor position from last time.

And if you create the following shell script...

#!/bin/sh
#
# ~/bin/git-opendiff.sh
#
/usr/bin/opendiff "$2" "$5" -merge "$1"

...and configure git to use it as external diff tool...

$ git config --global diff.external ~/bin/git-opendiff.sh

...you can use opendiff for diffs and merges.

geewiz
  • 140
  • 4
2

I prefer to keep the default diff command internal, for quick summaries at the terminal, and access the more advanced diff programs (I use MacVim) using the difftool commmand. I describe the set up procedure here. The Mac-specific part is in my wrapper script, where I facultatively launch MacVim if it is available, then default to regular Vim. You can adapt to use TextMate, of course, if that is your preference.

bunnyhero
  • 757
  • 2
  • 10
  • 23
Jeet
  • 38,594
  • 7
  • 49
  • 56