Visual Studio Tools for Git


An extension for Team Explorer to provide source control integration for Git. Enables integration with local Git repositories and provides tools to work with remote repositories.

(138) Review
Visual Studio
Download (274,402)
E-mail Twitter Digg Facebook
Add to favorites
Reviews (138)
Q and A (230)
Sign in to write a review
Sort by:

by Craig Brett (JP) | March 28 2014

Not a patch on using git in the command line. We've had plenty of issues around using this plugin and there are still some bugs and missing essential features. I'll outline some of them that most effect me.

* No stashing
* No way to fetch and track new remote branches. Has to be done in CLI to show up as a branch in VS.
* Seems to ignore update-index --assume-unchanged (needed for contributor-specific files.

We have also in the past had issues where it would remove entire projects from the index, sending the team into a panic. Luckily, this isn't impossible to fix with the git command line.

Some of my teammates like the VS integration, which itself is alright, but it needs to be a lot better if I'm going to trust it enough to leave the command line.

by Rookboom | March 13 2014

Much needed tool. However, currently it is too slow and buggy to be helpful without extra tools like TortoiseGit or the command line. Disappointing since this would really add a lot of value to Visual Studio.

For example: Try getting the History of a file. It can take minutes.

by Pezazz | March 07 2014

It would be great to have an annotation feature available! ("blame" in git terms)

by whidon | March 05 2014

Could you support Visual Studio 2010? After all, a lot of developers use this version to develop .net application

Thank you, very very much!

by Kris Ray | February 23 2014

by Andrew Steitz | January 29 2014

"I second the motion" by Julien Roncaglia, (November 28 2013)

Missing features that needs to be at the top of the list of "coming soon", in my order of preference, more "!" means more urgency:

!!!!! Annotate (git blame)
!!!!! Shelve (git stash)

!!!! Merge only some changes (git cherry-pick)

!! Tagging (git tag)

! Only one remote (git remote add)

by ScrumCode | January 15 2014

by aqx | January 09 2014

Looks promising, but A LOT more needs to be done for it to be usable. First - Team Explorer welcomes me with dreaded "Object reference not set to an instance of an object". Same for Visual Studio 2012 and 2013 (in 2013 the message shows in Output window). I have no way of opening the project straight from Team Explorer (in 2012), I also cannot browse Git repository. Also the View History doesn't work recursively, so I'm unable to see how things progressed at solution or project level, I just see the changes to the .sln or .proj file.

I give good three stars in hope that these issues will be resolved and that the extension will be helpful. For now I'll continue the command line Git version.

by ural89 | December 27 2013

by Jurion | December 07 2013


Why in the hell a source control plug in change my VS layout ?

DO NOT install this, or you are gonna have a bad time to reconfigure visual to your settings....

I swould give it a negative stars if i could

by Julien Roncaglia | November 28 2013

Too much features are currently missing to make it usable without the command line as TFS allow :

- No way to annotate (git blame)
- No way to merge only some changes (git cherry-pick)
- No tagging (git tag)
- No Shelve (git stash)
- Only one remote (git remote add)

by Balaji M Kundalam | November 23 2013

by LukePuplett | November 22 2013

Still need the command line and other tools, especially for blame and file history, and SSH is taking a while to be written, but a good start and life-saving for merge conflict resolution.

P.S. Microsoft, if you're writing an SSH module, can you open source that?

by Micky D | November 20 2013

Really needs ssh:// support

by Valdis Zobēla | November 14 2013

Now GIT integration is works well, no performance issues.

Waiting for more GIT features inside Visual Studio (like stash support).

by John W Byrd | November 12 2013

For whatever reason, this plugin was causing VS2012SP3 to crash in a variety of subtle and difficult to debug ways. Removing it caused VS2012 to become stable again. Unfortunate, as the plugin should have been very useful.

by drphrozen | November 08 2013

Git integration has become a lot easier with the new version.
It still lacks some essential features, but it looks promising.
Stuff like "Source control explorer" and revert changes would be high on my list.

by Júlio Nobre | October 31 2013

I have just started using and it looks promissing.
Any step toward GIT integration on Visual Studio should always be welcome. Despite the lack of features, this version does the kick-off on VSWS (Visual Studio Wonder Shell :D ) integration.
This does not seem to replace regular GIT tools (at least yet). However, it a pleasure to you ask a complement.
Gave it 4 stars because I consider it really valuable but it needs to be enhanced.

by Shaun Wilson | October 28 2013

Fixed "Value was either too large or too small for an Int32" bug that was occurring during Pull operations

Not fixed, still occurs. Unsure what the cause is except that the repository was cloned without using VS Tools for Git, re-cloning the repository from within VS seems to correct the issue.


by Matthew Mitrik (MS) | October 28 2013

V1.0 was just released! Marking the start of reviews for 1.0.

1 - 20 of 138 Items   
Sign in to start a discussion

  • Visual Studio 2012 Git Projects
    1 Posts | Last post Fri 6:11 PM
    • I am using Visual studio 2012 update 4 with Team Foundation 2013. 
      My issues is that i do not see all the projects created in the git repo via  TFS Web. 
      The only project that i am able to see is the one that was added via the Team foundation admin console. 
      Is this a known issue or am i missing some update?
  • Merge Conflicts
    10 Posts | Last post Thu 1:31 PM
    • An error was raised by libgit2. Category = 21 (MergeConflict).
      4 uncommitted changes would be overwritten by merge.
      The error always occur on nearly every project. Everytime I need to remove the whole repository and clone again to solve the problem.
      I even can't revert the changes made in local commit and can't push the changes to the server because only 1 incoming commit stuck.
      I have tried to click fetch, pull, and sync, no one make it works.
      Could anyone help to solve the problem?
      Really appreciate for anyone could help!
    • Calvin, thanks for reporting this.  I'm guessing you see this error when you actually try to perform a merge?  If you've seen this happen to multiple clones of your repo then I am guessing there is something special about your repo that libgit2 doesn't like.  Can you send me an email at taylaf at microsoft dot com so that we can work on getting a repro in house?
    • I also have this problem. It happens EVERY TIME both I and someone else on the team have committed to the master branch. No, I do not do anything, especially not merge (how do I do merge? there's no option for this). I simply click the SYNC button (or Fetch or Pull - these do the same), and I get the error. So far, the only way to get rid of the error is to download a fresh copy of the repository, thereby losing ALL my changes. This is a SHOWSTOPPER.
    • Also the same here! If you have local unsynced commits or changes then you can't sync. (An error was raised by libgit2. Category = 21 (MergeConflict).
      4 uncommitted changes would be overwritten by merge.) If you try to push your changes before pulling there is also a error message. (If it occurs next time i will add the push error message)
      Tis is really an showstopper and we can't start with productive work on our new TFS before this is solved! A real Merge dialog would be nice but a good automatic merge, without destroying the local changes, would be enough for now!
    • I've just hit this issue as well.  We have a brand new tfs-git repo and I've Cloned and done a bunch of commits and syncs.  Someone else just cloned and added new files in a completely different folder, so there's no content level differences which can be diff/merged and no button for it.  Surely I don't need to create a new branch every time someone else pushes a change?  I wouldn't think that would make a difference anyway.
      Anyway, this seems to be a massive problem, so any response would be great. has been over a month since the last post here.
    • I'm having the same problem. Has a fix for this issue been found yet?
    • The GUI seems to be buggy. 
      If I click Pull on Incoming Commits, I get the error referenced above "libgit2. Category = 21 (MergeConflict)...".
      When I open the Git Command Window, then type "Git Pull" it resolves the simple merge and completes. Why are these different?
    • I'm encountering this issue as well.  Has any progress been made on a fix?
    • e1v
      Same thing is happening here, almost every time I try to pull (from team foundation service) in VS it fails with An error was raised by libgit2. Category = 21 (MergeConflict)..
      Pulling from command line works fine.
    • Same thing here, we can no longer push, pull, or sync...I assume Microsoft would be working on this serious issue or at least get some information out to us so that we can work on a resolution ourselves. This issue literally makes it impossible to use GIT in VS2013.
  • updates?
    1 Posts | Last post April 07, 2014
    • It has been months since the last update, and response from the developers in this section seems to have ceased too. Many open bugs and feature requests remain. Is this plugin still in development? If so, when can we expect a new release?
  • Page not found
    8 Posts | Last post April 07, 2014
    • Clicking on Team Explorer -> Changes I'm getting an error:
      Page 'b38f4abc-2b2c-4e4d-a047-eaaca7514610' not found.
      Page 'b38f4abc-2b2c-4e4d-a047-eaaca7514610' not found.
      Unsynced Commits:
      Page 'd0e4ea4e-24f0-46d6-9d07-0bc09cdeae7d' not found.
      Microsoft Visual Studio Ultimate 2013, Version 12.0.21005.1 REL
    • Update: for Branches the guid is '1b6304db-275e-47cc-a026-2f443723ec15'.
    • Only re-installing Visual Studio 2013 fixes the problem.
    • I have the same problem :/
    • If you get into this state, the first thing I would try is to run 'devenv /setup' from the visual studio command prompt as an admin. This will force Visual Studio to rebuild the various caches for finding these pages.
    • Thanks Jameson M! devenv /setup worked for me to fix this problem on VS 2013 with Git integration enabled.
    • Same, no workaround for this issue?
      Any idea what may causing it?
    • Hey, 
      FYI @ work we are forced over on to TFS, and voila same problem there as well.
  • SSH anyone?
    1 Posts | Last post April 01, 2014
    • Still haven't seen a decent reply to this.  Libgit2 still isn't supporting ssh commands in Windows... namely git isn't working with ssh in Visual Studio.  Does anyone know a workaround that doesn't involve leaving the IDE?
  • I hope can "ssh" sync git with visual studio
    1 Posts | Last post March 31, 2014
    • I local has more project use "ssh" sync git ,so i hope can "ssh" sync git with visual studio  
  • Syncing to a network folder
    3 Posts | Last post March 25, 2014
    • I have this setup so that I was able to clone a repository which I have on a mapped network drive.  I got it to work by using the Clone feature under Local Git Repositories.  I entered this as the URL of the Git repo:
      It successfully got the project down from the server only my machine.  I am able to commit locally, but whenever I try to Sync back to the server I get this error:
      An error occurred. Detailed message: An error was raised by libgit2. Category = Os (NotFound).
      Failed to resolve path 'file:///V:\GitRepository\ProjectName': The filename, directory name, or volume label syntax is incorrect.
      I tried variations on the path, but still got an error.  Help would be greatly appreciated.
    • I should also mention that if I go to the command line prompt and run this:
      git push --all
      Then that command works properly and I'm able to pull the changes made onto another machine.  I'm able to the pull on the other machine by using the command line as well.
    • I got the process working to sync with a repository on a network drive.  Here are the steps involved:
      To create a Git repository on the server and tie it to your local repository:
      	1. In the network repository directory create a folder named for the project being added.
      	2. Click on Actions and select "Open Command Prompt"
      	3. Change the current folder in the command window to the folder you created.
      	4. Run this command:   git init --bare
      	5. Enter "exit" to close the command prompt.
      	6. Back In the Team Explorer window in Visual Studio, click on the Home button in the toolbar there and then on "Unsynced Commits"
      	7. Enter the path to the folder you created in the "Enter the URL of an empty Git repo" textbox and click on Publish
      	8. Click on the Home button in the tool bar in that window.  Then click on Branches.
      	9. Right click on the item under Unpublished Branches and select Publish Branch.
      To get a project that is currently in the Git repository on the server onto your machine:
      	1. First make sure that your settings are set correctly in the Team Explorer by clicking on the Settings link in the Home screen in the Team Explorer window.
      	2. Go to the Team Explorer window in Visual Studio and click on the Connect to Team Project button in the toolbar.
      	3. Click on Clone, and enter the path to the network folder containing the project you want and click on the Clone button.
  • Anable to see remote branches
    1 Posts | Last post March 21, 2014
    • I'm not experinced with git so I have a problem.  I create a repository (private one) on github. I downlouded vs tools for git. Then, I createtd a project on my laptop. I add it to source control (git). I made my first commit to local repo (branch master) and then i decided to push this branch to github repository. The first problem was that I was unable to publish branch named "master" because the same branch exists on remote repo (I was surpised). I create a new branch with different name and published it. But I was unhappy with two branches (I needed only one). But real problem appeared then. My roommate decided to work on the same project. First, he cloned repository. But only one file - readmy from remote branch master copied!. After that, he created a project of the same type and published new branch to same remote repo (third one!). Unfortunately, we was unable to pull remote my branch because we cant find it in command explorer. I suspect my qustion to be stupid but I'm thery confused with it. Sorry for my English, it is not my native language.
  • Is there a way to install it besides via tools?
    1 Posts | Last post February 17, 2014
    • So, in my company, our proxy blocks visual studio online tools. That means I cannot install this extension as it is.
      Is there any other way to install this? I have tried to download this file over here and to install, but as I am using currently Visual Studio 2012 express, there were no results on that.
      Thank you!
  • Losing Files in Commit
    1 Posts | Last post February 14, 2014
    • I am dealing with a project with two solutions one for web one for win forms and some shared projects between them in one folder. Projects are sometimes unloaded too which may be related.
      Not sure what is causing this exactly but if I do a commit in one solution modified files in the other are often (but not always) set to removed in the commit. If I go and look at the commit through an alternate GIT tool I can see the commit has the files set as deleted and have to undo it. I think the logic looking for changed files must not be working quite right.
1 - 10 of 230 Items