This browser is no longer supported.

Upgrade to Microsoft Edge to take advantage of the latest features, security updates, and technical support.

Download Microsoft Edge More info about Internet Explorer and Microsoft Edge

Applies to: yes Visual Studio no Visual Studio for Mac no Visual Studio Code

The Git Changes window provides a seamless way to interact with Git while coding without having to switch away from your code. But there are times when it makes more sense to focus on your Git repository. For example, you might need to get a good picture of what your team has been working on or maybe compare two commits to investigate a bug.

You can work remotely with the Git provider of your choice, such as GitHub or Azure DevOps.

Browse through local and remote branches

To get started, open the Git Repository window by selecting Git Repository on the View menu (or by using the Ctrl + 0 , Ctrl + R keyboard shortcut). You can also access the Git Repository window by selecting the outgoing/incoming links in the Git Changes window and on the status bar.

The Git Repository window contains three main sections, as numbered in the preceding screenshot:

  • Branches : Git empowers users to multitask and experiment with their code through branches. If you're working on multiple features at the same time or if you want to explore ideas without affecting your working code, branching can be helpful.

  • Graph : This section visualizes the state of your branch. It has three subsections:

  • Incoming shows incoming commits that your team has been contributing.
  • Outgoing shows your local commits that you still haven't pushed.
  • Local History shows the rest of commits tracked by your local repository.
  • Commit : Selecting any commit in the Graph section opens its details. You can check the changes that a commit has introduced by selecting them, which shows a difference. For example, the previous screenshot shows the changes that one commit introduced to the Files.csproj file.

    The Alt + Up arrow or Alt + Down arrow keyboard shortcuts allow you to jump between these sections.

    You can browse through any local or remote branch without having to switch your branch. When you find a commit that you want to focus on, select the Open in New Tab button to open the commit on a different tab.

    Similar to Commit Details , you can use the Open in New Tab button to open the comparison on a different tab or maximize it on the screen.

    Create a branch from a commit

    In Visual Studio, you can use the Git Graph pane in the Git Repository window to create branches from previous commits. To do so, right-click the commit you would like to create a new branch from, and then select New Branch .

    The equivalent command for this action is git branch <branchname> [<commit-id>] .

    Compare branches

    Comparing branches provides an overview of differences between two branches, which can be helpful before creating a pull request, merging, or even deleting a branch.

    To compare your currently checked out branch with other branches using Visual Studio, you can utilize the branch picker hosted in the status bar and the Git changes tool window to choose any local or remote branch to compare with. Right-click the branch you're targeting and select Compare with Current Branch . Alternatively, you can utilize the branch list on the Git Repository window to access the same command.

    Checkout commits

    Checking out a commit can be beneficial in multiple ways. For example, it allows you to go back to a previous point in your repository’s history where you can run or test your code. It can also be helpful if you would like to review code from a remote branch (a colleague’s branch, for example). That way you don’t need to create a local branch if you aren't planning on contributing to it. In this case, you can just check out the tip of the remote branch that you would like to review.

    To check out a previous commit in Visual Studio, open the Git Repository window, right-click the commit you would like to go back to and select checkout (–detach) . Visual Studio shows a confirmation dialog explaining that by checking out a commit, you'll be in a detached HEAD state. Meaning that the HEAD of your repository is going to point directly to a commit instead of a branch.

    Now that you are in a detached head state, feel free to run and test your code or even explore and commit changes. When you're done exploring and want to go back to your branch, you can choose to discard your changes by checking out an existing branch or choose to keep your changes by creating a new branch first.

    Important

    Commits created in a detached head state are not associated with any branch and may be garbage collected by Git after you check out a branch. That is why to keep your changes, it is recommended to create a new branch before checking out a branch. For example, commits C5 and C6 will be garbage collected if we check out Main without creating a new branch.

    To learn more about the detached head state, see the Detached Head Git documentation.

    Checking out the tip of a remote branch can be helpful if you would like to quickly review a pull request and evaluate the latest updates. To do that in Visual Studio, first make sure to fetch and get the latest updates from your remote repository. Then right-click the remote branch you would like to review and select Checkout Tip Commit .

    Next steps

    To continue your journey, see Manage Git repositories in Visual Studio .

    See also

  • The Git experience in Visual Studio
  • Visual Studio and GitHub: Better together
  •