Visual Studio Code集成了源代碼控制,幷包含了內置的Git支持。許多其餘源代碼控制提供程序可經過VS Code Marketplace上的擴展得到。html
提示:單擊擴展磁貼以閱讀市場中的說明和評論。react
VS Code支持同時處理多個源控制提供程序。例如,您能夠在TFS本地工做區旁邊打開多個Git存儲庫,並在項目中無縫地工做。源控制視圖(^⇧G)的SOURCE CONTROL PROVIDERS列表顯示檢測到的提供者和存儲庫,您能夠經過選擇特定提供者來肯定更改的顯示範圍。linux
若是要安裝其餘SCM提供程序,請在「 源代碼管理」視圖的「 更多(...)」下拉列表中的「 安裝其餘SCM提供程序...」命令將顯示可用的SCM提供程序擴展的列表。git
VS Code附帶Git源代碼管理管理器(SCM)擴展。大多數源代碼控制UI和工做流程在其餘SCM擴展中很常見,所以閱讀Git支持將幫助您瞭解如何使用其餘提供程序。github
注意:若是您是Git的新手,git-scm網站是一個開始使用熱門在線圖書,入門視頻和備忘單的好地方。VS Code文檔假設您已經熟悉Git。數據庫
注意: VS Code將利用您機器的Git安裝,所以您須要在得到這些功能以前先安裝Git。確保至少安裝版本
2.0.0
。api
提示: VS Code能夠與任何Git存儲庫一塊兒使用。若是您尚未私有託管的Git提供程序,Visual Studio Team Services是一個很好的免費選項。點擊這裏註冊。bash
左側的「源代碼管理」圖標將始終指示您當前在存儲庫中有多少更改的概述。單擊它將顯示當前存儲庫更改的詳細信息:CHANGES,STAGED CHANGES和MERGE CHANGES。服務器
單擊每一個項目將詳細顯示每一個文件中的文本更改。請注意,對於非暫存更改,右側的編輯器仍容許您編輯文件:隨意使用它!編輯器
您還能夠在VS代碼的左下角找到存儲庫狀態的指示器:當前分支,髒指示符以及當前分支的傳入和傳出提交的數量。您能夠經過單擊該狀態指示器並從列表中選擇Git引用來檢出存儲庫中的任何分支。
提示:您能夠在Git存儲庫的子目錄中打開VS Code。VS Code的Git服務仍將照常工做,顯示存儲庫中的全部更改,可是做用域目錄以外的文件更改將使用工具提示進行着色,指示它們位於當前工做空間以外。
當前檢出的分支配置了上游分支時,狀態欄中的分支指示符旁邊有一個「 同步更改」操做。Synchronize Changes將遠程更改下拉到本地存儲庫,而後將本地提交推送到上游分支。
若是沒有配置上游分支而且Git存儲庫設置了遠程數據庫,則啓用「 發佈」操做。這將容許您將當前分支發佈到遠程。
能夠經過文件中的上下文操做或經過拖放來完成暫存和取消暫存。
您能夠在更改上方鍵入提交消息,而後按Ctrl + Enter(macOS:⌘+ Enter)提交它們。若是存在任何分階段更改,則僅提交這些更改,不然將提交全部更改。
咱們發現這是一個很棒的工做流程。例如,在上一個屏幕截圖中,只有config.js
文件將包含在提交中。連續提交操做將同時提交vinyl-zip.js
並tests.js
在單獨的提交中提交。
能夠在Git視圖頂部的菜單中找到更具體的提交操做...
。
您可使用命令選項板(⇧⌘P)中的Git:Clone命令克隆Git存儲庫。系統將要求您提供遠程存儲庫的URL以及放置本地存儲庫的父目錄。
您能夠經過命令選項板(⇧⌘P)中的Git:Create Branch ...和Git:Checkout to ..命令直接在VS代碼中建立和簽出分支。
若是您運行Git:Checkout to ...,您將看到包含當前存儲庫中全部分支或標記的下拉列表。
該混賬:創建分公司...命令可讓你快速建立一個新的分支。只需提供新分支的名稱,VS Code將建立分支並切換到它。
鑑於您的存儲庫已鏈接到某個遠程,而且已檢出的分支具備指向該遠程分支的上游連接,VS Code爲您提供推送,拉取和同步該分支的有用操做(後者將運行pull命令,而後執行一個推命令)。您能夠在...
菜單中找到這些操做。
VS Code可以按期從您的遙控器獲取更改。這使VS Code可以顯示本地存儲庫在遠程控制器前面或後面有多少更改。從VS Code 1.19開始,默認狀況下禁用此功能,您可使用該git.autofetch
設置啓用它。
提示:您應該設置憑據幫助程序,以免每次VS代碼與Git遠程控制器通訊時都要求提供憑據。若是不這樣作,您可能須要考慮經過
git.autofetch
設置禁用自動提取以減小您得到的提示數量。
若是您打開一個Git存儲庫的文件夾並開始進行更改,VS Code將向裝訂線和概述標尺添加有用的註釋。
VS Code識別合併衝突。突出顯示差別,而且內聯操做能夠接受其中一個或兩個更改。解決衝突後,暫存衝突文件,以便提交這些更改。
咱們的Git工具支持在VS Code中查看差別。
提示:首先右鍵單擊資源管理器或OPEN EDITORS列表中的文件,而後選擇Select for Compare,而後右鍵單擊要比較的第二個文件,而後選擇與'file_name_you_chose' 進行比較,能夠區分任意兩個文件。或者從鍵盤點擊⇧⌘P並選擇文件:比較活動文件...,您將看到最近的文件列表。
差別編輯器中有一個審閱窗格,它以統一的補丁格式顯示更改。您可使用轉到下一個差別(F7)和轉到上一個差別(⇧F7)在更改之間導航。可使用箭頭鍵導航行,按Enter鍵將在Diff編輯器和所選行中跳回。
注意:此體驗對屏幕閱讀器用戶特別有用。
您能夠隨時查看咱們正在使用的Git命令。若是發生奇怪的事情或者你只是好奇,這會頗有幫助。:)
要打開Git輸出窗口,請運行View > Output並從下拉列表中選擇Git。
若是您的工做區不在Git源代碼控制之下,則可使用Initialize Repository命令輕鬆建立Git存儲庫。當VS Code未檢測到現有Git存儲庫時,您將看到a 沒有活動的源控制提供程序。源控件視圖中的消息和初始化存儲庫命令將在標題欄上提供。您還能夠從命令選項板(⇧⌘P)運行Git:Initialize Repository命令。
運行Initialize Repository將建立必要的Git存儲庫元數據文件,並將您的工做區文件顯示爲準備好上傳的未跟蹤更改。
從命令行啓動VS Code時,能夠傳遞--wait
參數以使啓動命令等待,直到關閉新的VS Code實例。當您將VS Code配置爲Git外部編輯器時,這可能頗有用,所以Git將等到您關閉已啓動的VS Code實例。
如下是執行此操做的步驟:
code --help
並得到幫助。
git config --global core.editor "code --wait"
如今您能夠運行git config --global -e
並使用VS Code做爲編輯器來配置Git。
將如下內容添加到您的Git配置中以使用VS Code做爲diff工具:
[diff]
tool = default-difftool
[difftool "default-difftool"] cmd = code --wait --diff $LOCAL $REMOTE
這利用了--diff
您能夠傳遞給VS Code 的選項來並排比較2個文件。
總而言之,如下是一些可使用VS Code做爲編輯器的示例:
git rebase HEAD~3 -i
使用VS Code進行交互式rebasegit commit
使用VS Code做爲提交消息git add -p
而後是e用於交互式添加git difftool <commit>^ <commit>
使用VS Code做爲更改的差別編輯器問:嘿,我初始化了個人回購,但...
菜單中的操做都是灰色的。是什麼賦予了?
答:要推送,拉動和同步,您須要設置Git原點。您能夠從repo主機獲取所需的URL。擁有該URL後,您須要經過運行幾個命令行操做將其添加到Git設置。例如,對於Visual Studio Team Services:
> git remote add origin https://<AccountName>.visualstudio.com/DefaultCollection/_git/<RepoName> > git push -u origin master
問:個人團隊正在使用Team Foundation版本控制(TFVC)而不是Git。我該怎麼辦?
答:使用Visual Studio Team Services Extension,這將點亮TFVC支持。
問:爲何拉動,推進和同步動做永遠不會完成?
這一般意味着在Git中沒有配置憑據管理,而且因爲某種緣由您沒有得到憑據提示。
您始終能夠設置憑據幫助程序,以便從遠程服務器提取和推送,而無需每次都有VS代碼提示您的憑據。
問:如何使用須要多因素身份驗證的Team Services賬戶登陸Git?
答:如今有Git憑證助手能夠協助進行多因素身份驗證。您能夠從下載這些混賬憑證管理Mac和Linux和Git的憑據管理器爲Windows。
問:個人計算機上安裝了GitHub Desktop,但VS Code忽略了它。
答: VS Code僅支持其Git集成的官方Git發行版。
問:每當VS Code運行時,我都會繼續獲取Git身份驗證對話框。
答: VS代碼會自動從服務器獲取更改,以便向您顯示傳入更改的摘要。Git身份驗證對話框獨立於VS Code自己,是您當前Git憑據幫助程序的一部分。
避免這些提示的一種方法是設置一個記住您的憑據的憑證幫助程序。
另外一個選項是經過更改如下設置來禁用自動提取功能:"git.autofetch": false
。
問:我能夠在VS Code中使用SSH Git身份驗證嗎?
答:是的,雖然VS Code最容易使用沒有密碼短語的SSH密鑰。若是您的SSH密鑰帶有密碼,則須要從Git Bash提示符啓動VS Code以繼承其SSH環境。