作为一个长期的Visual SourceSafe用户(和仇恨)我正在讨论与同事转换到SVN; 他建议改用Git。 显然,它可以在没有中央服务器的情况下用作点对点(我们是一个3开发团队)。
我无法找到任何关于将Git与Visual Studio集成的工具,但这样的事情是否存在?
在Visual Studio中使用Git有哪些技术可用? 在开始之前,我需要了解它们之间的区别?
-
我刚刚为VS 2010添加了Git源代码控制提供程序,所以它仍然有效。
-
从VS团队查看本教程。下一次更新; VS 2012的更新2现在即将到来。您也可以从此处下载VS2012的社区技术预览(CTP)。或者,如果您使用的是CMMI,Agile,Scrum 1/2等,您可以注册免费帐户(公共或私有云实例)并邀请成员(团队成员,客户)在基于Web的TFS tfs.visualstudio上进行项目。 COM
-
FYI visual studio update 3现在支持Git:blogs.msdn.com/b/visualstudioalm/archive/2014/07/02/
-
我已经使用Visual Studio和git两年了。我想说这个问题的最佳解决方案是使用像Atlassians SourceTree这样的独立源代码控制应用程序。它免费,易于安装,具有良好的GUI并且用户友好,您可以浏览多个存储库(也称为不同的项目),就像您在Chrome中浏览网页一样,最重要的是,支持多个源控制系统。试试看!你向我保证,你不会失望的!
-
从Visual Studio 2013开始本地支持Git
-
@rustyx:这是真的,但是"原生"插件是一堆不可用的。
-
我喜欢1342人如何对这个问题进行投票,而且有些白痴无论如何都会关闭它。好的StackOverfolow ....如果不是符合SO的标准,如果有这么多人发现它如此有用,那有什么关系。这个网站的意义不是很有帮助吗?
-
这个意见如何?"在Visual Studio中使用Git有哪些技术可用?"这是一个明确的问题......
-
@Moira这可能是封闭它的人的意见。 ;)
2013年1月,微软宣布他们正在为所有ALM产品添加完整的Git支持。他们发布了一个Visual Studio 2012插件,增加了Git源代码控制集成。
或者,有一个名为Git Extensions的项目,包括Visual Studio 2005,2008,2010和2012的加载项,以及Windows Explorer集成。它经常更新并在几个项目中使用它,我发现它非常有用。
另一个选择是Git Source Control Provider。
-
太棒了。这个应用程序很棒......我一直在耐心地使用命令行并等待tortoiseSVN equiv,但这更好。
-
ted.dennison:根据这个页面(code.google.com/p/gitextensions),它是一个VS 2005/2008插件。
-
Vertis:TortoiseGit已经有一段时间了......
-
它适用于VS2005
-
为了纠正自己 - 源是在Github上托管,MSI不是。
-
它现在似乎支持VS2010。
-
我已经安装了git扩展,它可以"通过"visual studio工作,而不是完全集成。是否有解决方案可以从解决方案资源管理器中签入 - 签出?
-
Dani,有人正在为VS的Git源代码控制提供商工作,似乎提供了更深层次的集成:gitscc.codeplex.com
-
有趣的是,扩展不是来自Github的源代码...
-
@Sung github.com/spdr870/gitextensions
-
对我来说,一个好的Git前端会减少我需要下拉到命令行以完成任务的次数。一段时间以来(一年多)使用Git Extensions已经超过6个月了,因为我需要下载到命令行。老实说,我不能说任何Git mac前端,我已经尝试了所有这些。
-
VS 2012有什么选择吗?
-
@EarthEngine昨天MS为git发布了一个插件! hanselman.com/blog/
-
我想知道这个答案是否得到了所有这些选票,因为人们真的认为这是一个很好的答案,或者如果人们只是喜欢Git。
-
我赞成它,因为它现在是最好的答案,即使它不是一个伟大的答案。缺乏分支机构支持,这对我的某些项目来说毫无用处。但是,对于非分支项目,最好去......
-
这是2009年的一个答案,从"2013年1月,微软宣布......"开始,你让我困惑了一会儿。
-
有什么意见吗?
-
Git for VS并不完全支持所有git命令。
-
是的,没错。
-
怎么样unicode - 它可以用吗?我知道在较旧的git中没有Unicode,UTF-8是唯一的解决方案。
-
为什么visual studio git工具不支持接口标签..接口只包括更改,分支,同步,配置....无标签
我使用Git和Visual Studio将Protocol Buffers的端口转换为C#。我不使用GUI - 我只是保持命令行打开以及Visual Studio。
在大多数情况下它很好 - 唯一的问题是当你想重命名文件。 Git和Visual Studio都宁愿他们重命名它。我认为在Visual Studio中重命名它是可行的方法 - 只需要小心你之后在Git方面所做的事情。虽然这在过去有点痛苦,但我听说它实际上应该在Git方面非常无缝,因为它可以注意到内容将大致相同。 (通常不完全相同 - 当你重命名类时,你倾向于重命名文件,IME。)
但基本上 - 是的,它运作正常。我是一个Git新手,但我可以把它做到我需要做的一切。确保你有bin和obj以及* .user的git ignore文件。
-
使用VS进行重命名时,git应该没问题。要在git log中进行良好的重命名跟踪,您只需确保在与"添加"部分相同的提交中暂存更改的"删除"部分。如果您的.gitignore是最新的,git add -A可以轻松实现。
-
我也是一个git新手,说实话我更喜欢从命令行使用它。我有点害怕处理GUI的git权力,试图"聪明"并在我的背后做一些"魔术"。
-
感谢您的建议。我刚搬到git(和github),永远不会回头。我的客户使用perforce(呃!)。所以我的计划是从perforce进行一次结账,用git做我的工作,然后再检查一下。
-
@CallMeLaNN:你在那里做了一个很大的假设,关于Git在使用命令行时遇到困难的新手。从2009年4月开始看看hasan j的评论。
-
我通常添加.user,* .suo,bin,obj ,.和_ *到我的忽略列表...如果我想添加以上其中一个,我仍然可以手动添加它。
-
我有相同的工作流程。我总是打开一个命令行窗口(带有git-posh脚本的NConsole)并在提交时切换回该窗口。我实际上试过(强迫自己)使用GitExtensions和/或TortoiseGit,但我总是发现自己切换回命令行。在Windows社区中,如果您告诉他们使用命令行,人们往往会看起来很消极......
-
好的忽略模板的CXSharp链接似乎已经死亡。试试这个:github.com/github/gitignore/blob/master/VisualStudio.gitignore
-
对于重命名的问题,最好只为重命名提交额外的提交。它应该始终是一个独立的变化,否则不会发生太大变化。无论如何,git的提交很便宜,你可以随后压扁
-
@Sardaukar - 在使用命令行之前,你还使用了任何Visual Studio Git扩展,只是为了在执行命令行操作之前给出关于文件状态和IDE更改的"提示"吗?或者你只是让'git status'成为你的朋友并告诉你需要做什么?换句话说,在进入命令行后,UI中是否有用于做出决策的内容?
-
@Howiecamp对于当前项目,我不得不使用不同的版本控制系统(恐怖)。我仍然发现使用Git我只使用命令行。我总是打开一个命令行窗口(对于多个监视器是这样),一个简单的git状态告诉我我需要的一切。
-
@Sardaukar - 可能是我在这方面缺乏经验,这是我这样的中堂问题的背后。那么我可以假设您根本不依赖Visual Studio IDE来获取源控制状态的可视化指示吗?并且您从命令行获得100%的反馈意见?这只是我思考方式的改变。从积极的方面来看,似乎删除与IDE项目绑定到源代码控制相关的问题消除了复杂性的来源......
-
谢谢你提到.gitignore文件......结果我已经有了bin obj和* .user文件,但作为一个git同伴新手,提醒那个文件存在并且我需要利用它是非常有帮助的。
-
请注意,如果您正在使用VS Git集成,您可以在设置>存储库设置>添加忽略文件中让VS为您创建一个非常全面的.gitignore文件
Git Source Control Provider是一个新的插件,它将Git与Visual Studio集成在一起。
-
有没有机会让它在2005年运作?
-
好。 TBH的图形界面正是我在VS 2010中搜索git的GUI时所寻找的。感谢您发布此内容。其他答案不是我需要的。与VisualSVN相比,它们很差。
-
我建议在决定安装它之前,先看看marketplace.visualstudio.com/中的评论部分。
我在工作中看到了这一点(包括Subversion和Git)。 Visual Studio实际上有一个源代码控制集成API,允许您将第三方源代码控制解决方案集成到Visual Studio中。然而,由于几个原因,大多数人都不打扰它。
首先,API几乎假设您正在使用锁定结帐工作流程。其中有很多钩子要么实现起来要么昂贵,要么在你使用更现代的编辑 - 合并工作流程时没有任何意义。
第二个(相关的)是当你使用Subversion和Git都鼓励的编辑 - 合并工作流时,你并不需要Visual Studio集成。 SourceSafe与Visual Studio集成的主要杀手点是,您(和编辑)可以一目了然地告诉您拥有哪些文件,在编辑之前必须先检出哪些文件,哪些文件即使您想要也无法检出。然后它可以帮助您在编辑文件时执行您需要执行的任何修订控制伏都教。这些甚至都不是典型Git工作流程的一部分。
当您使用Git(或典型的SVN)时,您的修订控制交互都发生在开发会话之前或之后(一旦您完成所有工作和测试)。那时使用不同的工具真的不是太痛苦。你不是经常来回切换。
-
究竟。我的公司使用SourceGear Vault,它有VS集成。但由于它还支持编辑 - 合并 - 提交工作流,因此我从未(曾经)实际使用VS集成。事实上,我想我卸载了那一点。
-
难道你们不移动或重命名文件/目录吗?几个月前我开始使用VisualSVN,我再也不能回去了。
-
@TED对我而言,这意味着经过长时间的开发,您必须记住每次更改文件的原因,直到您办理登机手续。如果我正在处理某些事情并看到需要在不相关的区域修复的内容,我想查看,知道我可以从记忆中清除这种变化,然后检查并检查。我宁愿在VS内做这件事
-
我想。我一般都没有那么特别的情况。当我这样做时,负责任的事情是转过来并将该基线下拉到一个新目录并构建并测试它,以确保更改不会搞砸那些没有其他未更改的更改的开发人员。通常最好使用VS的第二个实例,因此作为流程的一部分,您仍然会在一个VS实例之外。
-
Git Extensions Visual Studio插件不会试图将自己用于微软提供的旧学校锁定结账源控制API。它非常适合编辑合并工作流,基本上只是在IDE中添加提交/推送/拉取和文件历史记录。在上下文菜单中拥有文件历史记录非常有用!
-
我不同意主要是因为不得不离开视觉工作室办理登机手续,这样可以在办理登机手续之间鼓励更长时间。太多人已经在一天开始时结账,并且在结束之前(或更糟糕的日子之后)不会办理登机手续。与visual studio集成,可以让您始终将源代码控制保留在工作流程中。
-
@Chris - 啊,你显然是"早点检查"阵营的成员。当然,您有权获得自己的意见。但是,我是"不要检查它,除非它工作"阵营的成员。修订控制系统用于控制工作软件修订。如果我想要对正在进行的工作进行灾难备份,那就是IT备份的用途。但对你而言,VS整合会更有用。
-
从VS2005(VS2003?)开始,Visual Studio源代码控制集成并不特别倾向于checkout-checkin模型。以AnkhSVN为例。我更喜欢VS集成,因为然后重命名等更顺畅。
-
@ T.E.D。:对于DVCS的本地分支,我认为"早点检查"通常更有意义。您将拥有自己的修订历史记录,并且在其工作之前您不必向其公开其他人。
我发现,与整个树一样工作的Git比IDE集成比基于文件的源控制工具或遵循checkout-edit-commit模式更少受益。当然有些情况下单击按钮进行历史检查可能会很好,但我不会错过这一点。
真正的必须做的是让你的.gitignore文件充满不应该在共享存储库中的东西。我的一般包含(以及其他内容)以下内容:
1 2 3 4
| *.vcproj.*.user
*.ncb
*.aps
*.suo |
但这很大程度上是C ++的偏见,几乎没有使用任何类向导样式功能。
我的使用模式类似于以下内容。
Visual Studio中的代码,代码和代码。
快乐时(明智的中间点提交代码,切换到Git,阶段更改和审查差异。如果有什么显然错误切换回Visual Studio并修复,否则提交。
任何合并,分支,rebase或其他花哨的SCM东西在命令提示符下都很容易在Git中完成。 Visual Studio通常对在其下发生变化的事情感到相当满意,尽管如果您已经显着更改了项目文件,它有时可能需要重新加载一些项目。
我发现Git的用处超过了没有完全IDE集成的任何轻微不便,但它在某种程度上是一个品味问题。
-
告诉Git忽略项目中的bin /和obj /目录怎么样?当然,除非您希望它跟踪您的构建残余......:p
-
只是好奇,但为什么你要它忽略你的项目文件?
-
你没有,你绝对应该在版本控制下拥有你的项目文件。
-
这非常重要 - 一旦你开始提交和分支,忘记在.gitignore中包含一些内容就会很痛苦,至少可以说......
-
@Benjol:不应该那么痛苦。您只需要在活动分支的提示上git rm 和echo >>.gitignore; git add .gitignore。一旦你做出改变,你就可以随时挑选修复到其他分支。
-
@Charles Bailey,看看我在这个问题上的冒险经历:stackoverflow.com/questions/1887049/
-
@Benjol:我认为您的链接问题与此问题无关。这里我们讨论的是忽略Visual Studio将自动生成的文件,而您关注的是恢复从分支中删除的文件(并被忽略)但仍需要在工作树中恢复,因为它们不是自动生成的。
-
@Mike Brown:他忽略了* .user文件,这是用户特定的设置。
-
我同意。我最近从Subversion切换到git。我一直在使用命令行而不是VS插件,这很好用。我原本以为在没有VS插件的情况下工作会很痛苦,但由于我的Subversion经验,这是一种误解。
-
如果没有VS集成,您如何知道哪些文件已更改?
微软最近宣布了Git for Visual studio 2012(更新2)。我还没有玩过它,但这个视频看起来很有希望。
这是一个关于如何使用VisualStudio2012中的Git的快速教程。
-
我推荐这个,因为它是微软官方产品。它可以安装在VS 2012 Express和
也不要错过TortoiseGit ......
https://tortoisegit.org/
-
是的,这是一个很好的用户界面,但不,它没有与Visual Studio集成。
-
Git Source Control Provider将TortoiseGit命令添加到Visual Studio的上下文菜单中。
微软有一个适用于Git的Visual Studio工具。它只支持VisualStudio2012(更新2)。
-
对于visual studio 2012,这是最好的答案。看来他们在实施过程中付出了很多努力,根据我的经验,它按预期工作!
-
我无法弄清楚微软如何配置"Visual Studio Tools for Git"来使用私有Github仓库。您是否看过任何文档或教程?
-
我建议在决定安装它之前,先看看marketplace.visualstudio.com/中的评论部分。
Visual Studio 2013本身支持Git。
见官方公告。
Microsoft在Visual Studio中完成的Git支持对于基本工作(提交/获取/合并和推送)来说已经足够了。 我的建议只是为了避免......
我非常喜欢GitExtensions(或者比例较低的SourceTree)。 因为看到DAG对我来说非常重要,要了解Git的工作原理。 而且您更了解项目的其他贡献者所做的事情!
在Visual Studio中,您无法快速查看文件或提交之间的差异,也无法(添加到索引)并仅提交部分修改。 浏览你的历史也不好......所有这些都以痛苦的经历告终!
而且,例如,GitExtensions捆绑了有趣的插件:后台提取,GitFlow,......现在,持续集成!
对于VisualStudio2015的用户,如果您安装GitHub扩展,Git正在形成。 但外部工具仍然更好;-)
-
GitExtensions在2015年对你有用吗? 菜单对我不起作用github.com/gitextensions/gitextensions/issues/2815
TortoiseGit已经成熟,我推荐它,特别是如果你使用过TortoiseSVN。
最新版本的Git Extensions现在支持VisualStudio2010(以及VisualStudio2008和VisualStudio2005)。
我发现使用VisualStudio2008相当容易,并且VisualStudio2010中的界面似乎相同。
实际上运行良好的最简单的解决方案是将TortoiseGit命令添加为外部工具。
向Visual Studio添加Git(TortoiseGit)工具栏的解决方案
-
您也可以直接从Package Manager控制台调用git,它只是一个powershell命令行。或者... ... superuser.com/a/879561/135416
正如Jon Rimmer所提到的,你可以使用GitExtensions。 GitExtensions可以在Visual Studio 2005和Visual Studio 2008中运行,如果您手动复制和配置.Addin文件,它也可以在Visual Studio 2010中运行。
-
好的。我想知道谁正在测试和批准用户界面......所有的消息都非常令人困惑......我唯一的猜测就是他们急忙把它拿出去看看用户抱怨的原因/原因。
截至2013-02-11,VisualStudio2012的Microsoft Git插件也应该与Express版本一起使用。
目前在Visual Studio(2010和12)中有2个Git源代码控制选项:
Git源代码控制提供商
Microsoft Git Provider
我已经尝试了两个,并且发现第一个更成熟,并且具有更多功能。例如,它可以很好地兼顾togise git和git扩展,甚至可以暴露它们的功能。
注意:无论使用哪种扩展名,请确保从Tools -> Options -> Source control -> Plugin Selection启用它以使其正常工作。