作为Visual SourceSafe的长期用户(也是讨厌者),我和一位同事讨论了改用SVN的问题;他建议用Git代替。因为,很明显,它可以作为点对点使用,不需要中央服务器(我们是一个3人的开发团队)。
不过我没能找到任何关于将Git与Visual Studio整合的工具,这样的东西存在吗?
在 Visual Studio 中使用 Git 的技术有哪些?在开始使用之前,我需要知道它们的区别是什么?
2013年1月,微软宣布他们将在其所有的ALM产品中加入对Git的全面支持。他们为Visual Studio 2012发布了一个插件,增加了Git源控制集成。
另外,还有一个叫做Git Extensions的项目,包括Visual Studio 2005、2008、2010和2012的插件,以及Windows Explorer的集成。它定期更新,我在几个项目中使用过它,发现它非常有用。
另一个选择是Git Source Control Provider。
我使用Git和Visual Studio将协议缓冲区移植到C#。我不使用GUI--我只是在Visual Studio的基础上打开一个命令行。
在大多数情况下,这很好--唯一的问题是当你想重命名一个文件时。Git和Visual Studio都希望由他们来重命名文件。我认为在Visual Studio中重命名是个好办法,只是要注意之后在Git上的操作。虽然这在过去有点麻烦,但我听说在Git那边应该是无缝衔接的,因为它可以注意到内容大部分是一样的。(通常不完全一样--你在重命名类的时候往往会重命名一个文件,IME)。)
但基本上--是的,它运行良好。我是个Git新手,但我可以让它做我需要的一切。请确保你有一个针对bin和obj的git忽略文件,以及*.user。
我发现,与那些基于文件或遵循签出-编辑-提交模式的源码控制工具相比,Git在整棵树上工作,从IDE集成中获益较少。当然,在某些情况下,点击一个按钮来做一些历史检查是很好的,但我并不十分怀念这种做法。
真正必须做的是在你的.gitignore文件中加入不应该出现在共享资源库中的东西。我的文件通常包含以下内容(除其他外)。
*.vcproj.*.user
*.ncb
*.aps
*.suo
但这严重偏向于C++,很少或根本没有使用任何类向导式的功能。
我的使用模式是这样的。
1.在Visual Studio中编码、编码、编码。
2.2. 满意时(明智的中间点是提交代码,切换到Git,阶段性修改并审查差异。如果有什么明显的问题,就切换回Visual Studio并进行修复,否则就提交。
任何合并、分支、重定位或其他花哨的 SCM 东西都可以在 Git 的命令提示符下轻松完成。Visual Studio通常对在其下发生的变化相当满意,尽管有时它需要重新加载一些项目,如果你对项目文件有重大改动的话。
我发现Git的实用性超过了没有完全集成的IDE所带来的任何小的不便,但在某种程度上,这也是一个品味问题。