It seems that setting a custom tool for either merging or diffing is always set within git's global config area.
Due to the needs of our team, I require explicit control of the merge workflow for all team members, and need to automate the settings of custom diff tools. (aka Unity & UnityYAMLMerge).
Example config items:
mergetool.sourcetree.cmd=/Applications/Unity_5_5_3/Unity.app/Contents/Tools/UnityYAMLMerge merge -p $BASE $REMOTE $LOCAL $MERGED
mergetool.sourcetree.trustexitcode=true
difftool.sourcetree.cmd=/Applications/Unity_5_5_3/Unity.app/Contents/Tools/UnityYAMLMerge merge -p $BASE $REMOTE $LOCAL $MERGED
difftool.sourcetree.path=
Ideally, I would like to have my team's local git config set to control these behaviors... allowing explict workflows per repo.
Am I missing something, or does SourceTree only utilize the global config in this respect?
Secondly...
It seems that manually editing the global config settings for SourceTree's custom Diff and Merge tools seem to be overwritten when relaunching the application. This removes any chance of automation, and requires each team member to enter custom tool paths/variables manually.
It seems that SourceTree does not reference `~/.gitconfig` on launch, but overwrites it on launch (I'm guessing from a separate, SourceTree-specific preferences file). This is NOT ideal.
Any help would be appreciated 
(SourceTree 2.5.1 MacOS)