Visual Studio Tools for Git
The Visual Studio Tools for Git is an extension for Team Explorer that provides source control integration for Git. This extension enables integration with any local Git repository, and it provides tools to work with third party hosted Git repositories. The extension also enables the use of Team Foundation Service hosted Git projects.
Feedback
If you have feedback about these tools, please let us know! You can use the discussions tab for general feedback and comments, but please consider these sites for more specific feedback:
Features
Integration with Projects and Solutions
Integrates with Visual Studio projects to automatically track changes to your active solution. Shows file status in Solution Explorer, and uses context menus to issue source control commands like Commit, Compare, and Undo.
Team Explorer Integration
Connect page
View local Git repos as well as those hosted by Team Foundation Service and other Git hosters via the Connect page.
Changes page
Track local changes and commit them using the Changes page.
Commits page
Manage incoming and outgoing commits with fetch, pull, and push operations on the Commits page.
Branches page
Create, merge, and publish branches on the Branches page.
Other features
- Compare files using the integrated diff tool
- Resolve merge conflicts using the integrated 3-way merge tool
- View file and branch history (log)
- View details for commits
Release Notes
Version 1.0.0.0
- Aligns the functionality with the VS 2013 release
- Contains numerous performance and reliability improvements
- Fixes Resharper issues
Version 0.9.5.0 (Preview)
- Fix for "locked files" issues (including Resharper)
- Fix for using repositories under junction points
- Improved rename detection in Changes and Conflicts pages
- Improved error messages seen when switching branches
- Line ending filters are correctly applied when undoing, diffing, and merging files
- Added files are no longer automatically staged in the index
- Continued performance improvements
Version 0.9.0.0 (Preview)
- Fixed "Value was either too large or too small for an Int32" bug that was occurring during Pull operations
- Improved responsiveness of the Changes page by loading WIT queries on demand
- Performance improvements for a number of common scenarios:
- Editing a file without changes
- Editing a file with changes
- Signing in via Git provider after clearing cookies no longer fails with “Error: window.external.notifyToken is not registered"
- Fixed a Null reference in Solution Explorer for Solutions not under source control
- Undoing files that have been renamed and edited correctly reverts the changes
- Previously, a bug in libgit2 incorrectly set "tagopt = --tags" in the local gitconfig when cloning repositories. This bug is fixed in this release, and if a repo with this option set is opened in VS, a prompt to remove the option will be shown.
- If you are working against a Git repository hosted in Team Foundation Service, it is possible to see the following error in the "Sign in" dialog when first authenticating: "To help protect your security, your web browser blocked this site from downloading files to your computer. Click here for options…". This message is benign and can be dismissed by clicking the "X" in the message.
Version 0.8.5.1 (Preview)
- Added support for integrated Windows authentication when receiving a 407 Proxy Authentication Required
- Added support for pushing to Git servers which do not support Transfer-Encoding: Chunked
- Added support for pushing to certain Git servers which require side-band-64k in order to report push status
- The sync branch button on the Commits page is now functional. It does a fetch, merge, and push, in sequence
- Merge and pull now properly prompt the user to save their work before starting
- Merge and pull now allow you to have non-conflicting changes in your working copy
- Merge now properly auto-reloads non-dirty solution items which changed in the working copy
- The push command now sends fewer objects to the server, which is a substantial performance improvement
- Merge and pull now use checkout instead of reset for fast-forward merges, which is a performance improvement
- Fixed CRLF issue that was causing checkout to fail due to conflicts in certain scenarios
- Improved performance of working directory status computation (much less hashing of workdir contents)
- Fixed an issue where CRCRLF line endings would end up in the working copy in certain scenarios
- The Add, Delete, and Ignore actions in the Untracked Items section of the Changes page are now working
- Improved Solution Explorer glyph behavior with JavaScript and other CPS (Common Project System) projects
- Undo merge option added to the Resolve Conflicts page
- Fixed a bug where the user was not prompted for fresh credentials when stored credentials failed to authenticate
- Submodule support from the libgit2 project has arrived in this release, but we haven't yet finished all the work in our VS plug-in to make them work smoothly.
Version 0.8.0.0 (Preview)
- Updated the installer to an MSI to better handle dependency checks during upgrade/install. As a result, this update requires the Visual Studio Update 2 CTP4 release to be installed.
- Added a new Resolve Conflicts page that can be used to resolve different types of merge conflicts.
- Rename conflicts are not yet supported in this experience and need to be resolved from the command line.
- There is a bug in libgit2 that can cause stale data to accumulate in the Resolved section of the new Resolve Conflicts page. Stale data can be cleared by switching branches from the command line.
- Fixed a large number of bugs in the tools and underlying libraries. Some noteworthy fixes:
- Fixed a corruption issue in Libgit2 related to core.ignorecase
- Cleaned up "sign-up" links on the Home page when working with a local Git repo
- Name of the active Git repo is shown in the Navigation area (following the page name) when working with local Git repos
Version 0.7.0.2 (Preview)
- Fixed an issue experienced by Resharper users
- Added support for all VS Express SKUs
- Improved an issue with global config file resolution
Version 0.7.0.0 (Preview)
- When connecting to a TFS Git project, the Changes page will list the current branch as "unknown" until the repo has been cloned locally.
- Viewing the Commits page for a TFS Git project shows the branch as "unknown". Attempting to publish to a URL is not a valid action and should be disabled. Trying to push may result in an error.
- Several actions in the tools that are not yet implemented show as disabled:
- Sync (Changes and Commits pages)
- Revert (Commit Details page)
- Ignore (Changes page)
- Renaming files in Solution Explorer will display as an Add + Delete in the Changes view and Commit details.
- History for files does not yet follow renames.
- Conflict resolution does not yet support resolving merge conflicts that involve renamed files. Use command line tools to resolve these conflicts.
Privacy Notice
The Visual Studio Tools for Git optionally makes use of theGravatar image service. In the Git Settings page, if you choose to "Enable download of author images from 3rd party source", this will enable the use of the Gravatar image service.
In order to provide author images in the Commit and History views, the tool creates an MD5 hash for the author email addresses stored in the active repository. This hash is then sent to Gravatar to find a matching hash value for users that have previously signed up for the service. If a match is found, the user image will be retrieved from the service and displayed in Visual Studio. Users that have not configured the service will return a randomly generated image. Note, email addresses are not recorded by Microsoft, nor are they every shared with Gravatar or any other third party.
Additional Resources
Announcing Git on Team Foundation Service
Getting Started with Git in Visual Studio and Team Foundation Service