作为一个长期的Visual SourceSafe用户(和仇恨者),我正在和一个同事讨论切换到SVN;他建议使用git。因为,显然,它可以在没有中央服务器的情况下用作点对点(我们是一个3人开发团队)。
不过,我还没有找到任何关于将Git与Visual Studio集成的工具的信息——这样的东西存在吗?
有哪些技术可用于将Git与Visual Studio结合使用?在开始之前,我需要了解它们的不同之处?
我将Git与Visual Studio一起用于我的Protocol Buffers到C#的端口。我不使用GUI-我只是保持命令行打开以及Visual Studio。
大多数情况下都没问题——唯一的问题是当你想重命名一个文件时。Git和Visual Studio都宁愿由他们来重命名它。我认为在Visual Studio中重命名它是最好的方法——只是之后要小心你在Git端所做的事情。虽然这在过去有点痛苦,但我听说它在Git端实际上应该是相当无缝的,因为它可以注意到内容将基本相同。(通常不完全相同——当你重命名类时,你倾向于重命名文件,IME。)
但基本上-是的,它工作正常。我是一个Git新手,但我可以让它做我需要的一切。确保你有一个用于bin和obj以及*. user的git忽略文件。
2013年1月,微软宣布表示他们正在所有ALM产品中添加完整的Git支持。他们在Visual Studio 2012中排名第一,添加了Git源代码控制集成。
另外,还有一个名为git扩展的项目,其中包括Visual Studio 2005、2008、2010和2012的加载项,以及Windows资源管理器集成。它会定期更新,并在几个项目中使用它,我发现它非常有用。
另一个选项是Git源代码控制提供程序。
我发现Git在整个树上工作,与基于文件或遵循签出-编辑-提交模式的源代码控制工具相比,从IDE集成中获益较少。当然,在某些情况下,点击一个按钮进行一些历史检查会很好,但我不太想念。
真正必须做的是让您的. gitignore文件充满不应该在共享存储库中的内容。我的通常包含(除其他外)以下内容:
*.vcproj.*.user*.ncb*.aps*.suo
但这是严重C++偏见,很少或根本没有使用任何类向导样式的功能。
我的使用模式如下。
代码,代码,Visual Studio中的代码。
开心的时候(合理中间点提交代码,切换到Git,阶段修改和评审差异。如果有明显错误切换回Visual Studio并修复,否则提交。
任何合并、分支、rebase或其他花哨的SCM内容都可以从命令提示符在Git中轻松完成。Visual Studio通常对在其下更改的内容相当满意,尽管如果您显着更改了项目文件,它有时可能需要重新加载一些项目。
我发现Git的有用性超过了没有完整IDE集成的任何小不便,但在某种程度上,这是一个品味问题。
我在工作中(使用Subversion和Git)对此进行了一些研究。Visual Studio实际上有一个源代码控制集成API,允许您将第三方源代码控制解决方案集成到Visual Studio中。但是,由于几个原因,大多数人都不喜欢它。
首先,API几乎假设您使用的是锁定结帐工作流。其中有很多钩子,要么实现起来很昂贵,要么在您使用更现代的编辑合并工作流时完全没有意义。
第二个(与此相关)是,当你使用Subversion和Git都鼓励的编辑-合并工作流时,你并没有真正需要 Visual Studio集成。SourceSafe与Visual Studio集成的主要杀手是,你(和编辑器)可以一目了然地知道你拥有哪些文件,哪些文件必须在编辑之前签出,哪些文件即使你想签出也不能签出。然后它可以帮助你做任何当你想编辑文件时需要做的修订控制巫术。这些甚至都不是典型的Git工作流程的一部分。
当你使用Git(通常是SVN)时,你的版本控制交互都发生在开发会话之前或之后(一旦你的一切都正常工作和测试)。在这一点上,使用不同的工具真的不太痛苦。你不必经常来回切换。
根据Jon Rimmer的管理,您可以使用GitEx的。GitEx的工作在Visual Studio 2005和Visual Studio 2008中,如果您手动复制和配置. Addin文件,它也可以在Visual Studio 2010中工作。
也不要错过TortoiseGit…https://tortoisegit.org/
git扩展的最新版本现在支持Visual Studio 2010(以及Visual Studio 2008和Visual Studio 2005)。
我发现它与Visual Studio 2008一起使用相当容易,并且界面在Visual Studio 2010中似乎相同。
Git源代码控制提供程序是将Git与Visual Studio集成的新插件。
TortoiseGit已经成熟,我推荐它,特别是如果你使用过TortoiseSVN。
实际上效果很好的最简单的解决方案是将TortoiseGit命令添加为外部工具。
将Git(TortoiseGit)工具栏添加到Visual Studio的解决方案
微软有一个适用于Git的Visual Studio工具。它只支持Visual Studio 2012(更新2)。
微软最近发布了Visual Studio 2012的Git(更新2)。我还没有玩过它,但这段视频看起来很有希望。
以下是关于如何使用Visual Studio 2012中的Git的快速教程。
截至2013-02-11,Visual Studio 2012的Microsoft Git插件也应该与Express版本一起使用。
Visual Studio 2013原生支持Git。
看官方公告。
目前Visual Studio中的Git源代码控制有2个选项(2010和12):
我已经尝试过了,发现第一个更成熟,并且有更多的功能。例如,它可以很好地与乌龟git和git扩展一起玩,甚至暴露了它们的功能。
说明:无论您使用哪个扩展,请确保从Tools -> Options -> Source control -> Plugin Selection启用它才能工作。
Tools -> Options -> Source control -> Plugin Selection
Microsoft在Visual Studio中完成的Git支持对于基本工作(提交/获取/合并和推送)来说已经足够了。我的建议是避免它…
我非常喜欢代码扩展工具(或比例较小的资源树)。因为看到DAG对我来说对于理解Git的工作原理非常重要。你更了解你项目的其他贡献者做了什么!
在Visual Studio中,您无法快速查看文件或提交之间的差异,也无法(添加到索引中)仅提交部分修改。浏览您的历史记录也不好…所有这些都以痛苦的体验告终!
而且,例如,GitEx委与有趣的插件捆绑在一起:后台获取、GitFlow……现在,持续集成!
对于Visual Studio 2015的用户,如果您安装GitHub扩展,Git正在形成。但外部工具仍然更好;-)