ChatGPT解决这个技术问题 Extra ChatGPT

在 Visual Studio 中使用 Git [关闭]

关闭。这个问题是基于意见的。它目前不接受答案。想改进这个问题?更新问题,以便可以通过编辑这篇文章用事实和引用来回答它。 8年前关闭。改进这个问题

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

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

哪些技术可用于将 Git 与 Visual Studio 结合使用?在我开始之前,我需要知道它们有何不同?

我刚刚为 VS 2010 添加了 Git 源代码控制提供程序,所以它仍然有效。
签出此tutorial from VS team。下一次更新; VS 2012 的更新 2 即将到来。您还可以从 here 下载 VS2012 的社区技术预览 (CTP)。或者,如果您喜欢 CMMI、Agile、Scrum 1/2 等,您可以注册免费帐户(公共或私有云实例)&邀请成员(队友、客户)在基于 Web 的 TFS tfs.visualstudio.com 上参与您的项目
我已经使用 Visual Studio 和 git 两年了。我想说这个问题的最佳解决方案是只使用一个单独的源代码控制应用程序,比如 Atlassians SourceTree。它是免费的,易于安装,具有良好的 GUI 并且用户友好,您可以像在 Chrome 中浏览网页一样浏览多个存储库(也称为不同的项目),最重要的是,它支持多个源代码控制系统。试试看!你不会失望的,我向你保证!
从 Visual Studio 2013 开始支持 Git natively
我喜欢 1342 人对这个问题的投票方式,并且无论如何都会有一些白痴来关闭它。进展顺利 StackOverfolow ......这个网站的目的不就是提供帮助吗?

C
Callum Watkins

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


ted.dennison:根据此页面 (code.google.com/p/gitextensions),它是一个 VS 2005/2008 插件。
纠正自己 - 源代码托管在 Github 上,MSI 不是。
我已经安装了 git 扩展,它“由”visual studio 工作,并且没有完全集成。是否有从解决方案资源管理器启用签入-签出的解决方案?
Dani,有人正在为 VS 开发一个 Git 源代码控制提供程序,它似乎提供了更深层次的集成:gitscc.codeplex.com
VS 2012有什么选择吗?
J
Jon Skeet

我将 Git 与 Visual Studio 一起用于我的 Protocol Buffers 到 C# 的端口。我不使用 GUI——我只是保持命令行和 Visual Studio 一样打开。

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

但基本上 - 是的,它工作正常。我是 Git 新手,但我可以让它做我需要做的一切。确保你有一个用于 bin 和 obj 以及 *.user 的 git ignore 文件。


git 对 VS 进行重命名应该没问题。为了在 git log 中进行良好的重命名跟踪,您只需确保将更改的“删除”部分与“添加”部分放在同一提交中。如果您的 .gitignore 是最新的,则 git add -A 可以轻松完成此操作。
我也是一个 git 新手,说实话我更喜欢从命令行使用它。我会有点害怕处理一个试图“聪明”并在我背后做一些“魔法”的 GUI 的 git 功能。
感谢您的建议。我刚搬到 git(和 github),永远不会回头。我的客户使用 perforce(啊!)。所以我的计划是从 perforce 中进行一次结帐,使用 git 完成我的工作,然后重新签入。
@CallMeLaNN:你在那里做了一个很大的假设,关于 Git 新手在使用命令行时遇到困难。查看 hasan j 2009 年 4 月的评论。
我通常添加 .user、*.suo、bin、obj、.和 _* 到我的忽略列表中...如果我想添加上述其中一项,我仍然可以手动添加它。
P
Peter Mortensen

Git Source Control Provider 是将 Git 与 Visual Studio 集成的新插件。


有没有机会让它在 2005 年工作?
出色地。 TBH 这个图形界面正是我在 VS 2010 中搜索 git 的 GUI 时所寻找的。感谢您发布此内容。其他答案不是我需要的。与 VisualSVN 相比,它们很差。
我建议在决定安装之前查看 marketplace.visualstudio.com/… 中的评论部分。
P
Peter Mortensen

我在工作中对此进行了一些研究(使用 Subversion 和 Git)。 Visual Studio 实际上有一个源代码管理集成 API,允许您将第三方源代码管理解决方案集成到 Visual Studio 中。但是,出于几个原因,大多数人不会为此烦恼。

首先是 API 几乎假定您使用的是锁定结帐工作流程。其中有很多钩子,要么实施起来很昂贵,要么在您使用更现代的编辑合并工作流程时完全没有意义。

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

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


你们不曾移动或重命名文件/目录吗?几个月前我开始使用 VisualSVN,我再也回不去了。
@TED 对我来说,这意味着经过长时间的开发后,您必须记住每次文件更改的原因,直到您签入为止。如果我正在处理某事并在我喜欢签出的不相关区域中看到需要修复的内容,修复,并检查知道我可以从我的记忆中清除该更改。我宁愿从 VS 内部执行此操作
Git Extensions Visual Studio 插件不会试图将自己硬塞进微软提供的老式锁定签出源代码控制 API。它非常适合编辑合并工作流程,基本上只是在 IDE 中添加提交/推送/拉取和文件历史记录。在上下文菜单中显示文件历史记录非常有用!
我不同意,主要是因为不得不离开视觉工作室进行签到会鼓励签到之间的时间更长。太多人已经在一天开始时结账,直到最后才签入(或更糟糕的几天后)。与 Visual Studio 的集成使您可以在工作流程中不断地保持源代码控制。
从 VS2005(VS2003?)开始的 Visual Studio 源代码控制集成并不特别倾向于签出-签入模型。以 AnkhSVN 为例。我更喜欢 VS 集成,因为这样重命名等会更顺畅。
P
Peter Mortensen

我发现与基于文件或遵循 checkout-edit-commit 模式的源代码控制工具相比,Git 在整个树上工作,从 IDE 集成中获益更少。当然,在某些情况下,单击一个按钮进行一些历史检查可能会很好,但我并没有很怀念这一点。

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

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

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

我的使用模式如下所示。

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

任何合并、分支、变基或其他花哨的 SCM 东西都可以在 Git 中通过命令提示符轻松完成。 Visual Studio 通常对它下的变化非常满意,尽管如果您对项目文件进行了重大更改,它有时可能需要重新加载某些项目。

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


你没有,你绝对应该让你的项目文件受到版本控制。
这非常重要——从忘记在 .gitignore 中包含一些东西的过程中恢复过来,一旦你开始提交和分支,至少可以说是痛苦的......
@Benjol:不应该那么痛苦。您只需要在活动分支的提示上git rm <file>echo <file> >>.gitignore; git add .gitignore。一旦您提交了更改,您就可以随时将修复挑选到其他分支上。
@Charles Bailey,看看我在这个问题上的冒险经历:stackoverflow.com/questions/1887049/…
@Mike Brown:他忽略了 *.user 文件,这是用户特定的设置。
P
Peter Mortensen

Microsoft 最近宣布了 Git for Visual studio 2012(更新 2)。我还没有玩过它,但 this video 看起来很有希望。

下面是关于如何使用 Visual Studio 2012 中的 Git 的快速tutorial


我推荐这个,因为它是微软官方产品。它可以安装在 VS 2012 express 和
M
MrTux

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


是的,这是一个很好的 UI,但不,它没有与 Visual Studio 集成。
Git Source Control Provider 将 TortoiseGit 命令添加到 Visual Studio 的上下文菜单中。
P
Peter Mortensen

Microsoft 有一个 Visual Studio Tools for Git。它只支持 Visual Studio 2012(更新 2)。


对于visual studio 2012,这是最好的答案。看来他们在实施中付出了很多努力,根据我的经验,它按预期工作!
我无法弄清楚如何配置 Microsoft 的“Visual Studio Tools for Git”以使用私人 Github 存储库。您是否看过任何文档或教程?
我建议在决定安装之前查看 marketplace.visualstudio.com/… 中的评论部分。
F
Flexo

Visual Studio 2013 原生支持 Git。

请参阅 official announcement


C
Community

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

我非常喜欢GitExtensions(或比例较低的SourceTree)。因为看到 DAG 对我来说理解 Git 是如何工作的非常重要。而且您更加了解您项目的其他贡献者所做的事情!

在 Visual Studio 中,您无法快速查看文件或提交之间的差异,也无法(添加到索引)并仅提交部分修改。浏览你的历史也不好......所有这一切都以痛苦的经历结束!

而且,例如,GitExtensions 与有趣的插件捆绑在一起:后台提取、GitFlow ......现在,continuous integration

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


GitExtensions 在 2015 年对你有用吗?菜单不适合我github.com/gitextensions/gitextensions/issues/2815
S
SurfRat

TortoiseGit 已经成熟,我推荐它,特别是如果您使用过 TortoiseSVN。


P
Peter Mortensen

最新版本的 Git Extensions 现在支持 Visual Studio 2010(连同 Visual Studio 2008Visual Studio 2005)。

我发现它在 Visual Studio 2008 中使用起来相当容易,并且界面在 Visual Studio 2010 中似乎是相同的。


C
Community

实际上效果很好的最简单的解决方案是将 TortoiseGit 命令添加为外部工具。

Solution to adding a Git (TortoiseGit) toolbar to Visual Studio


您也可以直接从包管理器控制台调用 git,这只是一个 powershell 命令行。或者... superuser.com/a/879561/135416
H
Henk

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


好一个。我想知道谁在测试和批准用户界面......到处都是令人困惑的消息......我唯一的猜测是他们急于把它放出来,看看用户抱怨什么/为什么抱怨。
T
Tarun

目前 Visual Studio(2010 和 12)中的 Git 源代码控制有 2 个选项:

Git 源代码控制提供程序 Microsoft Git 提供程序

我都试过了,发现第一个更成熟,功能更多。例如,它可以很好地与乌龟 git 和 git 扩展配合使用,甚至暴露了它们的功能。

注意:无论您使用哪种扩展程序,请确保从 Tools -> Options -> Source control -> Plugin Selection 启用它以使其正常工作。