不过,我没有找到任何将Git与Visual Studio集成的工具 - 是否存在这样的工具?
有哪些可用于使用Git与Visual Studio的技术?在开始之前,我需要了解它们之间的区别吗?
2013年1月,微软宣布将在其所有应用生命周期管理产品中添加完整的Git支持。他们已经为Visual Studio 2012发布了插件,以添加Git源代码控制集成。
另外一个选择是名为Git扩展的项目,它包括适用于Visual Studio 2005、2008、2010和2012的插件,以及Windows Explorer集成。该项目会定期更新,我在几个项目中使用它时发现它非常有用。
另一个选项是Git源代码控制提供程序。
我在将协议缓冲区移植到C#时使用Visual Studio和Git。我不使用GUI - 我只是保持命令行打开以及Visual Studio。
大部分时间都很好 - 唯一的问题是当您想要重命名文件时。 Git和Visual Studio都希望他们自己来重命名。我认为在Visual Studio中重命名它是正确的方法 - 只需小心在之后的Git方面所做的操作就可以了。虽然这在过去有点困难,但我听说在Git方面实际上应该非常无缝,因为它可以注意到内容大多相同。(通常不完全相同,大多是在重命名类时才会重命名文件。)
但基本上 - 是的,它很好用。我是一个Git新手,但我能让它完成我需要它完成的所有事情。确保有一个git ignore文件用于bin和obj,以及*.user。
Git Source Control Provider 是一款新的插件,将 Git 与 Visual Studio 集成起来。
我在工作中曾经研究过这个问题(包括Subversion和Git)。实际上,Visual Studio有一个源代码控制集成API,允许你将第三方源代码控制解决方案集成到Visual Studio中。然而,大多数人并不会为此费心,原因如下。
首先,该API几乎假定你正在使用一种锁定-检出工作流程。其中有很多钩子,在使用更现代的编辑合并工作流程时,要么非常昂贵,要么根本没有意义。
其次(与之相关),当你使用Subversion和Git鼓励的编辑-合并工作流程时,你不需要真正地需要Visual Studio集成。SourceSafe与Visual Studio的主要杀手级功能是你(和编辑器)可以一眼看出哪些文件是你拥有的,哪些文件在编辑前必须检出,哪些文件即使你想检出也不能检出。然后它可以帮助你在想编辑文件时进行任何修订控制。所有这些都不是典型的Git工作流程的一部分。
当你使用Git(或者通常是Subversion)时,你的修订控制交互全部发生在你的开发会话之前或之后(一旦你已经完成了一切工作并测试),此时使用不同的工具也不会造成太多麻烦。你并不需要经常来回切换。
我发现,由于Git是整个树结构的操作方式,它从IDE集成中获得的好处要比基于文件或遵循签出-编辑-提交模式的源代码控制工具少。当然,有时点击一个按钮进行历史记录检查可能很方便,但我不太想念它。
真正必须做的是让您的.gitignore文件包含不应在共享存储库中的内容。我的通常包括(除其他东西外)以下内容:
*.vcproj.*.user
*.ncb
*.aps
*.suo
但是这篇文章明显偏向于 C++ ,很少或根本没有使用任何类向导样式的功能。
我的使用模式大致如下:
在 Visual Studio 中编写代码。
当满意(合理的中间点提交代码),切换到 Git,暂存更改并检查差异。如果有明显错误,请返回 Visual Studio 并进行修复,否则提交。
任何合并、分支、变基或其他高级 SCM 操作都可以轻松使用 Git 命令提示符完成。Visual Studio 通常对被修改的项目文件有较好的适应性,尽管有时需要重新加载一些项目。
我发现 Git 的实用性超过了没有完整 IDE 集成所带来的任何微小不便,但在某种程度上,这是一个品味问题。
此外,不要错过 TortoiseGit... https://tortoisegit.org/
微软提供了 Visual Studio Tools for Git。但是该插件仅支持 Visual Studio 2012 (update 2)。
微软在Visual Studio中提供的Git支持仅足以完成基本工作(提交/获取/合并与推送)。我的建议是尽量避免使用它...
我强烈推荐使用GitExtensions(或者稍微比例小一些的SourceTree)。因为对我来说,看到DAG真的很重要,以了解Git的工作原理。而且你能更加了解其他项目贡献者所做的工作!
在Visual Studio中,你无法快速查看文件之间的差异或提交之间的差异,也无法(将修改)添加到索引并仅提交部分修改。浏览历史记录也不好...所有这些都会导致痛苦的体验!
例如,GitExtensions捆绑了有趣的插件: 后台获取、GitFlow,...现在还有持续集成!
对于Visual Studio 2015的用户,如果安装GitHub扩展,Git会形成。但是外部工具仍然更好;-)