簡體   English   中英

沒有適用於Windows或Github擴展的Git的Visual Studio Git源代碼控制

[英]Visual Studio Git Source Control without Git for Windows or Github extension

在Team Explorer中,它提示我安裝第三方git工具,我不打算使用Git命令行,而只是使用Visual Studio的本機GUI來克隆,提取,提交,同步,合並以及可能發出提取請求。

那么,我需要安裝第三方Git命令提示符工具(或Github擴展名)嗎? 因為我已經安裝了2.10.1,但沒有發現任何不同。 如果這樣做,我會得到什么,如果不這樣做,我會有什么損失,因為我想要一個干凈的最小化安裝,而那里的所有教程和文檔都假定我必須安裝它們。

這可能與Edward Thomson 最近的推文一致 (也在Stack Overflow上 ):

我不介意@VisualStudio刪除libgit2並轉到git,他們有充分的理由,但“行為不同”的借口看起來像是FUD。

他們有充分的理由轉向git:在VS中維護libgit2是一場噩夢。 (我知道!我曾經做過!)

當他們使用Git for Windows維護者時,為什么要花錢在(或周圍)libgit2上?

他在這里談論的是約翰內斯·辛德林Johannes Schindelin) ,他於2015年8月加入微軟 ,並發布了Windows版Git

對於他們來說,完全有意義。

因此,直到最近,Visual Studio仍未使用第三方Git客戶端,但現在使用Visual Studio 15(如jessehouwing評論 ,VS 2015並未附帶其自己的git.exe ,而是使用了庫)。

這是Visual Studio 15 Preview 5 (不是Visual Studio 2015 v14.25123.xx)
參見ycombinator.com

“ 15”團隊放棄了libgit2似乎很可恥。 考慮到Microsoft已經/是一個貢獻者, 並且所有貢獻者都具有相同的目標(跨平台,功能奇偶性等),人們不得不懷疑libgit2有什么不好,它已經被放棄了,而贊成使用git.exe?

通過刪除libgit2,他們釋放了一些內存。 顯然,VS和git的整體內存使用量可能會增加,但是VS團隊陷入混亂,直到內存使用量減少,因為沒人會優先考慮使其成為64位應用程序


OP問:

事實上,我正在使用VS“ 15” Preview5。那么這是否意味着我需要安裝Windows版Git,或者它已經隨VS 15一起提供了? 如果是這樣,為什么它仍然提示我安裝它? – Jonney Shih 3分鍾前

jessehouwing答案:

Visual Studio附帶了一個非常小的版本。 但是它沒有添加到路徑中 因此,Visual Studio不需要您安裝它。

它安裝在這里: 在此處輸入圖片說明

為自己的命令行轉義安裝git客戶端的最佳方法是在Visual Studio旁邊安裝Windows版Git。 如果這樣做,則可以從Visual Studio中取消提示

就個人而言,我喜歡通過將最新的壓縮文件解壓縮來“安裝” Git,例如: PortableGit-2.10.1-64-bit.7z.exe我想要的任何地方。

不,您不需要第三方git客戶端(適用於Windows的Git客戶端)。 但是某些命令無法通過Visual Studio使用(例如),例如,您無法檢查reflog並且強制推送不可用。

安裝Git For Windows之后,請確保其安裝路徑在PATH環境變量中,並在安裝后重新啟動Visual Studio。

如果您的版本比Visual Studio版本出廠時提供的版本新得多,則Visual Studio可能無法檢測到它。 對於您的情況,請確保還安裝了Visual Studio 2015 Update 3。


一些背景:

Visual Studio 2013和2015隨LibGit2和LibGitSharp一起提供。 LibGit2是一個庫,可在跨平台C / C ++庫中實現大多數標准Git功能。 LibGitSharp是對此的托管包裝。 並非所有命令都直接在LibGit2中實現,並非LibGit2的所有內容都直接在LibGitSharp中公開。

本機集成既有優點也有缺點。 盡管直接進行炮轟到git.exe的速度更快,但也使內存管理更加困難。 此外,本機集成中的任何崩潰或內存泄漏都將減慢或破壞整個Visual Studio。

通過與git的交互進行進程外,每個操作都在其自己的小進程中運行,如果在執行過程中崩潰或不釋放內存,該命令將失敗,但是Visual Studio只會看到git.exe是意外關閉而不會崩潰。

此外,通過直接依賴git.exe,可以從git命令行中進行的所有操作都相對容易地實現到Visual Studio中,而在過去,某些功能將不可用,必須使用C#或C ++進行編碼。


因此,Visual Studio直接實現/公開了許多git功能,但其中一些未公開。 諸如RefLog,強制推送,隱藏,Git Flow,Cherry Pick之類的功能目前尚未通過Visual Studio UI公開。 如果您依賴這些命令,則需要一個外部git客戶端。 命令行是此類客戶端的最通用示例,但是還有其他一些示例也可以為您提供幫助。 想到了GitKraken,SourceTree,Tower等

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM