Git For MATLAB
MATLAB on Cheaha has been configured to work with Git.
Cloning a Git Repository into MATLAB
Create a clean folder to use with Git
To start out with, MATLAB's Git requires an empty folder. Currently this is just an empty folder with no source control (a regular MATLAB folder).
convert: unable to open file `/research/apps/rnb/docs/htdocs/tgw/images/c/c9/MatlabOpenToEmptyFolder.png' @ error/png.c/ReadPNGImage/3639.
convert: missing an image filename `/tmp/transform_4cc569c-1.png' @ error/convert.c/ConvertImageCommand/3015.
If you have no empty folder, create one, as MATLAB's Git will give an error if there are any files in the folder.
Clone a Git Repository using MATLAB
Right click in the file browser to bring up the context menu. Navigate to and select Source Control->Manage Files
convert: unable to open file `/research/apps/rnb/docs/htdocs/tgw/images/0/01/MatlabSourceControlManageFiles.png' @ error/png.c/ReadPNGImage/3639.
convert: missing an image filename `/tmp/transform_260e02a-1.png' @ error/convert.c/ConvertImageCommand/3015.
The "Manage Files using Source Control" interface will pop up. Select ""Git"" for your ""Source Control Integration"" option. Under ""Repository Path"" you place the URL of the repository you are going to clone into your empty directory. ""Sandbox"" should be filled in with the current directory. Ideally this is the directory in which you wish to place the cloned repository.
convert: unable to open file `/research/apps/rnb/docs/htdocs/tgw/images/2/22/MatlabCloneRepositoryContextMenu.png' @ error/png.c/ReadPNGImage/3639.
convert: missing an image filename `/tmp/transform_20c9753-1.png' @ error/convert.c/ConvertImageCommand/3015.
In this screenshot a sample GitLab Repository URL is pasted into the ""Repository Path"" text box. If you click "Change" on the same line, an additional window will appear where you can also validate the link prior to attempting to clone the repository.
Once this dialog has been filled in appropriately, clicking the "Retrieve" button will initialize the repository and checkout the current revision into the selected folder
Upon re-inspection of the file browser, it should have now changed to match what is currently in the Git repository that was cloned.
The file browser also now has a "Git" column, which displays the current Git status of each file in the folder.
- A green circle implies the file is up to date
- An empty circle implies the file is currently untracked
- A dot implies the file is ignored by the repository (generally due to rules placed in a .gitignore file)
- A blue square implies the file has been modified since the last commit
- A plus sign implies the file is a new file and has been staged for adding to the repository
Once you have finished your changes, don't forget to "Push" your folder's state back to the repository.
convert: unable to open file `/research/apps/rnb/docs/htdocs/tgw/images/6/6b/MatlabPushChangesBackToGitRepo.png' @ error/png.c/ReadPNGImage/3639.
convert: missing an image filename `/tmp/transform_97ca81-1.png' @ error/convert.c/ConvertImageCommand/3015.
WARNING: MATLAB does not give any indication whether the current repository in the working directory is up to date with the remote Git repository. It is a good practice to perform a "Pull" prior to doing any work within your working directory, and "Push" after any "Commit."
Using a working directory previously initialized to Git
If you navigate within MATLAB to a working directory initialized to a Git repository using other means, MATLAB will still recognize the folder as source controlled by Git. All normal Git functions will be available through the MATLAB contextual menu, and the icons in the file browser should show the correct Git status.
MATLAB supports most Git actions as shown in the context menu. If any functions are not working as expected, the "system" command can be used in the MATLAB terminal to simply use the normal Git command line tools.
We are investigating some intermittent behavior issues with inputting comments upon committing within MATLAB on Cheaha. If you experience this issue, please let us know. Feel free to use the Git command line tools in order to workaround the issue.