Git is very slow on OS X

Whenever I use anything Git related on my MacBook (brand-new Macbook Pro with El Capitan), it takes almost a full minute for each command. I did a simple

GIT_TRACE=1 git stash

and got back this:

17:04:27.460826 git.c:557               trace: exec: 'git-stash'
17:04:27.463136 run-command.c:347       trace: run_command: 'git-stash'
17:04:32.503827 git.c:348               trace: built-in: git 'rev-parse' '--git-dir'
17:04:34.521223 git.c:348               trace: built-in: git 'rev-parse' '--show-toplevel'
17:04:35.527473 git.c:348               trace: built-in: git 'config' '--get-colorbool' 'color.interactive'
17:04:36.534443 git.c:348               trace: built-in: git 'config' '--get-color' 'color.interactive.help' 'red bold'
17:04:37.538357 git.c:348               trace: built-in: git 'config' '--get-color' '' 'reset'
17:04:38.544472 git.c:348               trace: built-in: git 'update-index' '-q' '--refresh'
17:04:39.567521 git.c:348               trace: built-in: git 'diff-index' '--quiet' '--cached' 'HEAD' '--ignore-submodules' '--'
17:04:40.578480 git.c:348               trace: built-in: git 'diff-files' '--quiet' '--ignore-submodules'
17:04:41.595078 git.c:348               trace: built-in: git 'update-index' '-q' '--refresh'
17:04:42.612776 git.c:348               trace: built-in: git 'diff-index' '--quiet' '--cached' 'HEAD' '--ignore-submodules' '--'
17:04:43.621067 git.c:348               trace: built-in: git 'diff-files' '--quiet' '--ignore-submodules'
17:04:44.636720 git.c:348               trace: built-in: git 'rev-parse' '--verify' 'HEAD'
17:04:45.642275 git.c:348               trace: built-in: git 'rev-list' '--oneline' '-n' '1' 'HEAD' '--'
17:04:46.648038 git.c:348               trace: built-in: git 'symbolic-ref' '-q' 'HEAD'
17:04:47.653633 git.c:348               trace: built-in: git 'write-tree'
17:04:48.664282 git.c:348               trace: built-in: git 'commit-tree' '<hex_number>' '-p' '<hex_number>'
17:04:49.672125 git.c:348               trace: built-in: git 'read-tree' '--index-output=/Users/<USER>/.git/index.stash.62412' '-m' '<hex_number>'
17:04:50.707740 git.c:348               trace: built-in: git 'diff' '--name-only' '-z' 'HEAD' '--'
17:04:51.737890 git.c:348               trace: built-in: git 'update-index' '-z' '--add' '--remove' '--stdin'
17:04:52.752634 git.c:348               trace: built-in: git 'write-tree'
17:04:53.772245 git.c:348               trace: built-in: git 'commit-tree' '<hex_number>' '-p' '<hex_number>' '-p' '<hex_number>'
17:04:54.778991 git.c:348               trace: built-in: git 'update-ref' '-m' 'WIP on <branch>: <hex_number> <branch> Kept working for a bit' 'refs/stash' '<hex_number>'
Saved working directory and index state WIP on <branch>: <hex_number> <branch> Kept working for a bit
17:04:55.787801 git.c:348               trace: built-in: git 'reset' '--hard'
HEAD is now at <hex_number> <branch> Kept working for a bit

I'm primarily using Atlassian's SourceTree, but the problem also persists on the git command-line (also, so is the log I showed). Our source for hosting the code is multiple paid, private repos on GitHub.

Is there anything that I can try to speed up git operations? It doesn't seem to matter which operation it is, they are all slow.

I was told to ask this question here as opposed to Stack Overflow.


Run git gc once a while to speed up things (if you haven't set it to be automatically on)


Turns out the answer to this was to disable my WebRoot software. Once that was turned off, git IMMEDIATELY sped up to expected speed.