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