Include one line summaries of the merged commits in commit merge messages (a MUST): git config --global merge.log true
Use auto-tracking (behave as if -track is added to every git-pull):
git config --global branch.autosetupmerge always
Note: --global changes the global configuration ( ~/.gitconfig). Without --global the local per repository configuration will be changed (.git/config). You can either use the commands above or edit by hand the config files.
Example ~/.gitconfig: [user] name = Andrei Pelinescu-Onciul email = andrei@iptel.org signinkey = 2CF56A2D [color] branch = auto status = auto [merge] log = true [branch] autosetupmerge = always [remote "ser"] url= ssh://git.sip-router.org/ser push=cvshead:andrei/cvshead push=sctp:andrei/sctp [url "ssh://git.sip-router.org/"] insteadOf = sip-router: insteadOf = sip_router: [alias] intercommit = !sh -c 'git show "$0" > /tmp/commit1 && git show "$1" > /tmp/commit2 && interdiff /tmp/commit[12] | less -FRS' funcdiff = !sh -c "git show \"\$0:\$2\" | sed -n \"/^[^ \t].*\$3(/,/^}/p\" > /tmp/.tmp1 &&\n git show \"\$1:\$2\" | sed -n \"/^[^ \t].*\$3(/,/^}/p\" > /tmp/.tmp2 &&\ngit diff /tmp/.tmp1 /tmp/.tmp2"
The insteadOf lines create aliases for the url (so that I can use git pull sip-router:ser_core cvs-head instead of git pull ssh://git.sip-router.org/ser_core cvs-head
The aliases create a new git "commands", for more details see http://git.or.cz/gitwiki/Aliases.
The funcdiff alias tries to display the differences in _one_ function between 2 different commits, e.g.: git funcdiff <oldrev> <newrev> <path> <function>
The intecommit alias is for seeing differences between a submited patch (local commit into your repository) and the possibly modified version applied: git intercommit <orig_commit> <applied_commit>.
Andrei