If you have been wary of setting up a source control system in the MATLAB environment because trying to leaves you stupefied and a few hours older with little to show for it, you are not alone. As documented here, here and here.
I’m sure there are plenty of reasons why source control has been difficult for amateur programmers, but learning git is worth transcending the learning curve. Branching/merging/rebase maneuvers don’t require you or your collaborators to be connected at all times, freeing you up to work in airplanes and trains without internet connectivity.
You can read a blow-by-blow comparison of git with its competitors on “Why git is better than X”, if you need more convincing.
If you’re beginning to get serious about source control for your MATLAB projects, here is a function that might be useful to you:
1. Get the open-source git executable for your OS.
2. Download git.m to your MATLAB path and use
gitat the MATLAB prompt exactly as you would use the OS command prompt.
Here’s a common MATLAB workflow to create your git repository, add a few files, modify them, and commit your changes:
Creates initial repository tracking all files under some root folder
Shows changes made to all files in repo (none so far)
Create a new file and add some codE
Check repo status, after new file created
Add foo.m to your repo
git add foo.m
Commit your changes to a new branch, with comments
git commit -m 'Created new file, foo.m'
Other useful commands (replace ellipses with appropriate args)
git checkout ... % To return to an earlier node in branch
git branch ... % To create or move to another branch
git merge ... % When merge conflicts arise
git diff ... % See line-by-line changes
This is not meant to be a comprehensive guide to the many possible git workflows. Take a look at the original git documentation or one of the other related resources below.