Set up a Git repository
Applies to: Visual Studio for Mac Visual Studio
Git is a distributed version control system that allows teams to work on the same documents simultaneously. This means there is a single server that contains all the files, but whenever a repository is checked out from this central source, the entire repository is cloned locally to your machine.
There are many remote hosts that allow you to work with Git for version control, however the most common host is GitHub. The following example uses a GitHub host, but you can use any Git host for version control in Visual Studio for Mac.
If you wish to use GitHub, make sure that you have an account created and configured before following the steps in this article.
Creating a remote repo on GitHub
The following example uses a GitHub host, but you can use any Git host for version control in Visual Studio for Mac.
To set up a Git repository, execute the following steps:
Create a new Git repo at github.com:
Set Repo Name, description, and privacy. Do not initialize Repo. Set .gitignore and license to None:
The next page gives you an option to display and copy either the HTTPS or SSH address to the repo you have created:
You'll need the HTTPS address to point Visual Studio for Mac to this repo.
Publishing an existing project
If you have an existing project that is not already in version control, use the following steps to set it up in Git:
Tip
Use a .gitignore file to control which folders and files are tracked and published with Git. You may want to exclude build directories, binaries, or generated files. Learn more in the GitHub docs on ignoring files.
Select the Solution name from the Solution Window in Visual Studio for Mac.
In the Menu bar, select Version Control > Publish in Version Control to display the Clone Repository dialog:
If this menu item appears greyed out in the menu, make sure you have selected the Solution name.
Choose the Select from Registered tab and press the Add button:
Enter the name of the repository as you would like it to display locally, and paste in the URL from step #3. Your Repository Configuration dialog should look similar to the following. Press OK:
It is also possible to use SSH to connect to Git.
To attempt to publish the app to Git, select the repository, and ensure that both Module Name and Message text fields are completed:
Click Okay, and then Publish from the alert dialog.
In the Git Credentials window, enter your GitHub username and password.
Note
If your account has two-factor authentication (2FA) enabled, you will need to create an Access Token, which is used in place of a password. If you have not created an access token, follow the steps in the Git Access Token documentation.
Enter the username and Personal Access Token, and press Okay:
After a few seconds, the Solution should be published with its initial commit. Confirm it has been published by browsing the Version Control menu item, which should now be populated with many options:
Once you start to make additional changes, first use the Version Control > Review and Commit menu to open status view. After you've selected and committed changes, select Push to push the changes to the remote repository. This will allow all appropriate users to view it on github.com:
Publishing a new project
The new project dialog can be used to create a new project with a local git repository. To enable it, select the Use git for version control checkbox, as illustrated in the following screenshot. This will initialize your repo and add an optional .gitignore file:
Follow the steps below to push your new local repository to a new GitHub repository:
Note
If you have not already created a GitHub repository, refer to the Creating a remote repo on GitHub section.
Create your first commit by going to Version Control > Review and Commit in the Menu Bar.
In the Status tab, choose Commit in the top left.
Write a commit message, for example "First Commit", then click on Commit:
Next, in the Menu Bar go to Version Control > Manage Branches and Remotes.
Go to the Remote Sources tab, then click Add.
In the Remote Source window, add the details of your previously created GitHub repository and click OK:
Close the Git Repository Configuration window, then in the Menu Bar go to Version Control > Push Changes.
In the Push to Repository window click on the Push Changes button:
When prompted, enter your GitHub username and password.
Note
If your account has two-factor authentication (2FA) enabled, you will need to create an Access Token, which is used in place of a password. If you have not created an access token, follow the steps in the Git Access Token documentation.
Visual Studio for Mac will now push the changes to your remote GitHub repository:
Clone an existing repository
Visual Studio for Mac makes it easy to clone a repository right from the IDE. You can work remotely with the Git provider of your choice, such as GitHub or Azure DevOps.
In the Menu bar, select Version Control > Clone Repository:
This displays the Connect with Url tab:
On the GitHub page of the remote repository, press the Clone or Download button and copy the URL provided:
Replace all the text in the URL entry field in the Connect with Url tab. This will populate most other fields in this tab for you, as illustrated in the image in step #2.
Enter the directory that you want to clone the repo into and press Clone.
Note
You may experience issues if the repo is over 4 GB in size.
Troubleshooting
If you have issues with initializing your project with an empty remote repository, you can try the following steps:
- Go to your solution folder.
- Press Command + Shift + . to show the hidden files and folders.
- If there's a .git folder, delete it.
- If there's a gitignore file, delete it.
- Press Command + Shift + . to hide the files and folders.
- Open your solution in VS for Mac.
- On the solution Window, select your solution node.
- Browse to the Version Control menu and choose Publish in Version Control.
- Follow the steps of the above tutorial starting from the step 6.