Visual Studio Git源代码控制,不带Git for Windows或Github扩展

bfrts1fy  于 8个月前  发布在  Git
关注(0)|答案(2)|浏览(112)

在团队资源管理器中,它提示我安装第三方git工具,我不打算使用Git命令行,只是Visual Studio的原生GUI来克隆,拉取,提交,同步,合并,也许发出拉取请求。
那么我需要安装第三方Git命令提示符工具(或Github扩展)吗?因为我已经安装了2.10.1,并没有注意到任何不同。如果我这样做,我会得到什么,如果我不这样做,我会失去什么,因为我想要一个干净的最小安装,所有教程和文档都假设我必须安装它们。

wxclj1h5

wxclj1h51#

这可能与来自Edward Thomsonrecent tweet(也在Stack Overflow上)一致:
我不介意@VisualStudio删除libgit 2并转移到git,他们有很好的理由,但“它的行为不同”的借口,它读起来像FUD。
他们转向git有很好的理由:在VS中维护libgit 2简直是一场噩梦(我知道!我以前也这么做过!)
当他们雇佣了一个Git for Windows维护者时,为什么要花钱去破解libgit 2呢?
他在这里谈论的是Johannes Schindelin,谁got employed by Microsoft last August 2015,谁发布了Git for Windows editions
他们搬家是有道理的。
因此,直到最近,Visual Studio都没有使用第三方Git客户端,但现在它使用了Visual Studio 15(正如jessehouwing所评论的那样,VS 2015没有自带git.exe,而是使用了一个库)。
这是**Visual Studio 15 Preview 5**(不是Visual Studio 2015,它是v14.25123.xx)
参见ycombinator.com
考虑到微软有/是一个贡献者 想必所有的贡献方都有同样的目标(跨平台,功能对等等),人们不得不想知道libgit 2有什么不好,它被放弃了,而支持git.exe?
通过删除libgit 2,他们释放了一些内存。显然,VS和git的整体内存使用可能会增加,但VS团队会一直受到鞭打,直到内存使用减少,因为没有人会优先考虑将其作为64位应用程序
OP问:
事实上,我正在使用VS“15”Preview 5。那么这是否意味着我需要安装Git for Windows,或者它已经随VS 15一起提供了?如果是这样,为什么它仍然提示我安装它?- Jonney Shih 3分钟前
jessehouwing回答:
Visual Studio附带了一个非常小的版本。但它没有添加到路径中。因此Visual Studio不依赖于您安装它。
安装地址:x1c 0d1x
安装git客户端的最佳方法是将Git for Windows与Visual Studio一起安装。如果您已经这样做了,您可以从Visual Studio中关闭提示符。
就我个人而言,我喜欢通过解压缩最新的归档文件来“安装”Git,比如:PortableGit-2.10.1-64-bit.7z.exe

baubqpgj

baubqpgj2#

不,你不需要第三方的git客户端(Git for Windows应该可以)。但是有些命令还不能通过Visual Studio使用,例如,你不能检查reflog,强制推送也不可用。
安装Git For Windows后,确保其安装路径在PATH环境变量中,并在安装后重新启动Visual Studio。
如果您的版本比Visual Studio版本发布时可用的版本新得多,Visual Studio可能不会检测到它。在这种情况下,请确保您还安装了Visual Studio 2015 Update 3。
一些背景:
Visual Studio 2013和2015附带了LibGit 2和LibGitSharp。LibGit 2是一个在跨平台C/C库中实现大部分标准Git功能的库。LibGitSharp是一个托管 Package 器。并非所有命令都直接在LibGit 2中实现,也不是所有LibGit 2都直接在LibGitSharp中公开。
本机集成有优点也有缺点。虽然它比直接操作git.exe更快,但它也使内存管理更加困难。此外,本机集成中的任何崩溃或内存泄漏都会减慢或关闭整个Visual Studio。
通过在进程外与git进行交互,每个操作都在自己的小进程中运行,如果在执行过程中崩溃或不释放内存,命令将失败,但Visual Studio只会看到git.exe意外关闭,而不会崩溃。
此外,通过直接在git.exe上获取依赖项,任何可能从git命令行实现的功能都相对容易在Visual Studio中实现,而在过去,一些功能不可用,必须用C#或C
编码。
因此,Visual Studio直接实现/公开了许多git功能,但有些功能没有公开。目前,诸如RefLog,Force Push,Stash,Git Flow,Cherry Pick等功能还没有通过Visual Studio UI公开。如果你依赖这些命令,你将需要一个外部git客户端。命令行是这种客户端最通用的例子,但也有其他人可以帮助你。GitKraken, SourceTree, Tower and others come to mind

相关问题