作为一名长期使用Visual SourceSafe的用户(也是仇恨者),我正在与一位同事讨论切换到SVN;他建议改用Git。因为,显然,它可以作为点对点使用,而无需中央服务器(我们是一个3开发团队)。

不过,我还没有找到任何关于将Git与Visual Studio集成的工具的信息——这样的东西存在吗?

在Visual Studio中使用Git有哪些技术?在我开始之前,我需要知道它们有什么不同?


我使用Git和Visual Studio将协议缓冲区连接到C#。我不使用GUI——我只是像Visual Studio一样打开命令行。

在大多数情况下,这是好的-唯一的问题是当您想要重命名文件时。Git和Visual Studio都希望自己是重命名它的人。不过,我认为在Visual Studio中重命名它是一种方法——只是要小心之后在Git端的操作。虽然这在过去有点痛苦,但我听说它在Git端实际上应该是无缝的,因为它可以注意到内容基本相同。(通常不完全相同——在重命名类IME时,您倾向于重命名文件。)

但基本上-是的,它很好。我是一个Git新手,但我可以让它做我需要的一切。确保你有一个Git忽略文件,用于bin、obj和*.user。


2013年1月,微软宣布,他们将在所有ALM产品中添加完整的Git支持。他们为Visual Studio 2012发布了一个插件,添加了Git源代码管理集成。

另外,还有一个名为GitExtensions的项目,其中包括Visual Studio 2005、2008、2010和2012的插件,以及Windows资源管理器集成。它定期更新,并在几个项目中使用过,我发现它非常有用。

另一个选项是Git源代码控制提供程序。


我发现,与基于文件或遵循签出-编辑-提交模式的源代码管理工具相比,Git在整个树上工作时,从IDE集成中获益较少。当然,有些情况下,点击一个按钮进行历史检查会很好,但我并不十分怀念。

真正必须做的是让.gitignore文件充满不应该在共享存储库中的内容。矿山通常包含(除其他材料外)以下内容:

*.vcproj.*.user
*.ncb
*.aps
*.suo

但这严重偏向于C++,很少或根本没有使用任何类向导风格的功能。

我的使用模式如下所示。

Visual Studio中的代码,代码,代码。当高兴时(明智的中间点是提交代码),切换到Git,保存更改并查看差异。如果有任何明显错误,请切换回Visual Studio并修复,否则提交。

在Git中,任何合并、分支、重基或其他漂亮的SCM内容都可以从命令提示符轻松完成。VisualStudio通常对其下的内容变化相当满意,尽管如果您对项目文件进行了重大更改,它有时需要重新加载一些项目。

我发现Git的有用性超过了没有完全集成IDE带来的任何不便,但在某种程度上,这是一个品味问题。


我在工作中对此进行了一些研究(包括Subversion和Git)。Visual Studio实际上有一个源代码管理集成API,允许您将第三方源代码管理解决方案集成到Visual Studio中。然而,出于几个原因,大多数人都不介意。

首先,API基本上假设您使用的是锁定的签出工作流。其中有很多钩子,它们要么实现起来很昂贵,要么就是在使用更现代的编辑合并工作流时变得毫无意义。

第二个(与此相关)是,当您使用Subversion和Git都鼓励的编辑合并工作流时,您实际上不需要Visual Studio集成。SourceSafe与Visual Studio集成的主要杀手在于,您(和编辑器)可以一目了然地知道您拥有哪些文件,哪些文件必须在编辑之前签出,哪些文件即使您想签出也无法签出。然后,它可以帮助您在编辑文件时执行任何需要执行的修订控制伏都教。这些都不是典型的Git工作流的一部分。

当您使用Git(通常是SVN)时,您的修订控制交互都发生在开发会话之前或之后(一旦您完成了所有工作并进行了测试)。在这一点上,使用不同的工具真的不太痛苦。你不必经常来回切换。


正如Jon Rimmer所言,您可以使用GitExtensions。GitExtensions可以在Visual Studio 2005和Visual Studio 2008中工作,如果您手动复制和配置.Addin文件,它也可以在Visual Studio2010中工作。


也不要错过TortoiseGit。。。https://tortoisegit.org/


最新版本的Git扩展现在支持Visual Studio 2010(以及Visual Studio 2008和Visual Studio 2005)。

我发现它很容易与VisualStudio2008一起使用,而且在VisualStudio2010中界面似乎是一样的。


Git源代码控制提供程序是一个将Git与Visual Studio集成的新插件。


TortoiseGit已经成熟,我特别推荐您使用TortoiseSVN。


最简单的解决方案是将TortoiseGit命令作为外部工具添加。

将Git(TortoiseGit)工具栏添加到Visual Studio的解决方案


微软有一个Visual Studio Tools for Git。但它仅支持Visual Studio 2012(更新2)。


微软最近发布了Visual studio 2012的Git(更新2)。我还没有玩过,但这个视频看起来很有希望。

这里是一个关于如何使用VisualStudio2012中的Git的快速教程。


从2013年2月11日起,Visual Studio 2012的Microsoft Git插件也应与Express版本兼容。


Visual Studio 2013本机支持Git。

请参见官方公告。


目前,Visual Studio中的Git源代码管理有两个选项(2010和12):

Git源代码管理提供程序Microsoft Git提供程序

我已经尝试了这两种方法,并发现第一种方法更成熟,并且具有更多的功能。例如,它可以很好地处理乌龟git和git扩展,甚至暴露了它们的特性。

注意:无论使用哪种扩展,请确保从“工具”->“选项”->“源代码管理”->“插件选择”中启用它,使其正常工作。


Microsoft在Visual Studio中提供的Git支持对于基本工作(提交/获取/合并和推送)来说已经足够了。我的建议是避免。。。

我非常喜欢GitExtensions(或者SourceTree)。因为看到DAG对了解Git的工作方式非常重要。而且你更加了解项目的其他贡献者所做的事情!

在Visual Studio中,您不能快速看到文件之间的差异或提交,也不能(添加到索引中)和提交部分修改。浏览您的历史记录也不好。。。这一切都以痛苦的经历告终!

例如,GitExtensions与有趣的插件捆绑在一起:background fetch、GitFlow,。。。现在,持续集成!

对于Visual Studio 2015的用户来说,如果安装GitHub扩展,Git正在形成。但外部工具仍然更好;-)