⏱reading time: 4 min

As I’ll try to explain in the future, I have a full Homebrew R install. I also try to use Homebrew to install as much applications and utilities I can because I think it’s really handy to be able to install or update just with a simple command in the shell. Although sometimes it give you a little bit of a headache, as this time.

Apple vs Homebrew’s Git version

Apple ships with their systems a really to use version of Git, but it’s usually a bit outdated and you can’t update that version –I don’t really know what version they have shipped with High Sierra1. This is usually not a really big deal, since, as you seen in the left picture, the versions aren’t really far away and most of the people don’t use Git in their everyday lives, but if you really need, or want to be, up to-day you are going to need to do some tweaks here and there.

First of all, you need to install the last Git using Homebrew:

You are probably going to need to relink by force -f  your new Git to make the system to use it.

Know if you ask the system, your version of Git have to be different –superior–  to the one Apple provides. In my case and under El Capitan is like this:

If you are user of rStudio, you’ll probably know that you can use Git in your rStudio projects, as you should, as in any coding project. rStudio developers, to save us with the fuss of installing and configuring Git –and to save them to explain us how, set up rStudio to use the Apple’s Git by default, pointing to /usr/bin/git  in the user settings

rStudio’s version control options

If you want to use your own downloaded Git you just have to change that value in the settings and that’s it. However, it’s a little bit more complicated than that in practice. Since we’re using Homebrew to manage our apps the directory of the app changes every time you update it to show the version it’s storing, just in case you wanted to have more than one version. The path to the directory of Homebrew’s Git looks something like this, as you saw before in a code chuck:

If you updated Git using Homebrew, the new path would look something like this.

Where the X  are the new version numbers.

To make things easier, Homebrew just create symbolic links to the directory /usr/local/bin/ to make the system find the app files. That is what you did when you used the command brew link and you had to use the flag -f  –force– to overwrite the already existent links to Apple’s Git in usr/bin/git.

So, you’re probably thinking that you just have to set the path to Git executable in rStudio to  /usr/local/bin/git and problem fixed. Yes and not. Yes because that is the path you need to end up in settings, but is something you can’t make to happen using rStudio interface. Every time you change the path to /usr/local/bin/git using the browse button in the settings you are going to end up with /usr/local/Cellar/git/2.XX.X/bin/git  and in consequence when you update Git using Homebrew rStudio isn’t going to be able to find the Git executable. In consequence, you will end up without Git support in rStudio. This happens because rStudio interface follows the symbolic link instead of stuck with the route you set with the browse button.

Then… What we should do? You need to open the user setting’s file of rStudio located in a hidden directory in your user folder ~/.rstudio/monitored/user-settings/user-settings  with the following command.

rStudio user setting’s file.

Towards the end of the file, there is a variable called vcsGitExePath  that set your personalized options for the path of Git executable. With your rStudio closed, you can change it in the file to this:

and save the file.

If you open again rStudio and go to your user settings, the version control settings have to look like this:

Version Control Settings on rStudio.

Now you can update without any problem your Git using Homebrew and it will keep working.

Git’s version in High Sierra


  1. I just updated to High Sierra, and I can confirm that the Git’s version is a little bit more up to to day, but it isn’t the latest. 

Leave a Reply