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:
Visual Studio
Visual Studio for Mac
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