Get Started with Azure Repos and Visual Studio

Azure Repos | Azure DevOps Server 2019 | TFS 2018 | TFS 2017 | TFS 2015 | VS 2017

This guide covers the basics so you can get up and running using Git with code already in Azure DevOps Services or Team Foundation Server (TFS). Explore our full tutorial for more information on how to use Git from Visual Studio or the command line.

If you don't have your code in an Azure DevOps Services or TFS Git repo, visit our Visual Studio or command line getting started articles to learn how to create a local repo for your code and push it to Azure Repos.

Get your code

To get a copy of the source code, you clone a Git repository. Cloning creates both a copy of the source code for you to work with and all the version control information so Git can manage the source code.

If you don't have a Git repository yet, you can create one using your own code and continue with the steps in this article to commit and share your work.

  1. In Team Explorer, open up the Connect page by selecting the Connect icon, and then choose Manage Connections, Connect to Project.

    Cloning Azure DevOps Services Git repositories in Visual Studio

  2. On the Connect to a Project dialog, select the repo you want to clone from the list and select Clone. If you don't see your repo listed, you can filter the list to find it or add a Team Foundation Server where the repo is hosted by selecting the Add TFS Server link.

    Cloning a Git Repository from a connected organization in Azure DevOps


    Project URLs have changed with the release of Azure DevOps Services and now have the format{your organization}/{your project}, but you can still use the existing format. For more information, see VSTS is now Azure DevOps Services.

  3. Verify the location of the cloned repo on your PC and select Clone.

Commit your work

Git branches isolate your changes from other work being done in the project. The recommended Git workflow uses a new branch for every feature or fix you work on. You make commits in your local Git repository to save your changes on that branch.

  1. In Team Explorer, select the Home icon and choose Branches.


  2. Right click the master branch and choose New Local Branch From...

    Creating a Local Branch off the Master branch in Visual Studio

  3. Choose a descriptive branch name for your work to remind you and others what kind of work is in the branch, and select Create Branch.

    Creating a Local Branch off the Master branch in Visual Studio

  4. Make changes to your files in the cloned repo. From the Team Explorer Home view, you can open up Visual Studio solutions in the repo or browse the repo contents using the Show Folder View link. Git keeps track of changes made to your code both inside and outside of Visual Studio.

  5. When you are satisfied with the changes, save them in Git using a commit. Open up the Changes view from Team Explorer by selecting the Home icon and choosing Changes.


  6. Enter a message describing the commit, and select Commit All.

    Commit All


    If you have multiple files and you don't want to commit them all, you can right-click each desired file and choose Stage. When you have staged all the files you would like to commit, click Commit Staged. (The Commit All button is replaced by Commit Staged when you manually stage your changes before the commit.)

    Stage files

Share your changes

When you are ready to share your changes with the team, you can push those changes so that others can reach them. You can only push changes after you add commits to a branch.

Once you push the changes, you can create a pull request to let others know you'd like to have the changes reviewed and added to the master branch of the code.

  1. Open up the Synchronization view in Team Explorer by selecting the Home icon and choosing Sync.


    You can also navigate to the Synchronization view from the Changes view by choosing Sync immediately after making a commit.


  2. Select Push to share your commit with the remote repository.


    If this is your first push to the repository you'll see the following message in place of the outgoing commits list: The current branch does not track a remote branch. Push your changes to a new branch on the origin remote and set the upstream branch. Select Push to push your changes to a new branch on the remote repository and set the upstream branch. The next time you push changes you'll see the list of commits.

  3. Create a pull request so that others can review your changes. Open Pull Requests in Team Explorer by selecting the Home icon and choosing Pull Requests.

    Pull Requests

  4. From the Pull Requests view you can view pull requests opened by you, assigned to you, and you can create new pull requests. Select New Pull Request to open up a web browser where you can create the new pull request in the Azure DevOps Services web portal.

    Pull Requests

  5. Verify your branches (in this example we want to merge the commits from the ReadMeFix branch into the master branch), enter a title and optional description, specify any reviewers, optionally associate any work items, and select Create.

    Create a Pull Request in the Azure DevOps Services web portal

    For more information on pull requests, see the pull request tutorial.

Sync with others

To get changes from others and keep your code up to date, you can pull commits made by others and merge them into your branch. Git is very good about merging multiple changes even in the same file, but sometimes you might have to resolve a merge conflict. It's a good idea to pull your branches regularly to keep them up to date with the changes from others. This makes sure that your feature branches from your main branch are using the latest version of the code.

  1. Open up the Synchronization view in Team Explorer by selecting the Home icon and choosing Sync.


  2. You can download the latest changes to the branch you are on using the Pull link. (There are two Pull links, one near the top and one in the Incoming Commits section. You can use either one as they both do the same thing.)

    Download changes to your local repo