在VS代碼中使用版本控制


在VS代碼中使用版本控制

Visual Studio Code集成了源代碼控制,並包含了內置的Git支持。許多其他源代碼控制提供程序可通過VS Code Marketplace上的擴展獲得。

 

提示:單擊擴展磁貼以閱讀市場中的說明和評論。

SCM提供商

VS Code支持同時處理多個源控制提供程序。例如,您可以在TFS本地工作區旁邊打開多個Git存儲庫,並在項目中無縫地工作。源控制視圖(^⇧GSOURCE CONTROL PROVIDERS列表顯示檢測到的提供者和存儲庫,您可以通過選擇特定提供者來確定更改的顯示范圍。

源控制提供商

如果要安裝其他SCM提供程序,請在“ 源代碼管理”視圖的“ 更多(...)”下拉列表中的“ 安裝其他SCM提供程序...”命令將顯示可用的SCM提供程序擴展的列表。

安裝其他scm提供程序

Git支持

VS Code附帶Git源代碼管理管理器(SCM)擴展。大多數源代碼控制UI和工作流程在其他SCM擴展中很常見,因此閱讀Git支持將幫助您了解如何使用其他提供程序。

注意:如果您是Git的新手,git-scm網站是一個開始使用熱門在線圖書,入門視頻備忘單的好地方VS Code文檔假設您已經熟悉Git。

git概述

注意: VS Code將利用您機器的Git安裝,因此您需要在獲得這些功能之前先安裝Git確保至少安裝版本2.0.0

提示: VS Code可以與任何Git存儲庫一起使用。如果您還沒有私有托管的Git提供程序,Visual Studio Team Services是一個很好的免費選項。點擊這里注冊

左側的“源代碼管理”圖標將始終指示您當前在存儲庫中有多少更改概述單擊它將顯示當前存儲庫更改的詳細信息:CHANGESSTAGED CHANGESMERGE CHANGES

單擊每個項目將詳細顯示每個文件中的文本更改請注意,對於非暫存更改,右側的編輯器仍允許您編輯文件:隨意使用它!

您還可以在VS代碼的左下角找到存儲庫狀態的指示器當前分支臟指示符以及當前分支傳入和傳出提交的數量您可以通過單擊該狀態指示器並從列表中選擇Git引用檢出存儲庫中的任何分支。

提示:您可以在Git存儲庫的子目錄中打開VS Code。VS Code的Git服務仍將照常工作,顯示存儲庫中的所有更改,但是作用域目錄之外的文件更改將使用工具提示進行着色,指示它們位於當前工作空間之外。

Git狀態欄操作

當前檢出的分支配置了上游分支時,狀態欄中的分支指示符旁邊有一個“ 同步更改”操作。Synchronize Changes將遠程更改下拉到本地存儲庫,然后將本地提交推送到上游分支。

git狀態欄同步

如果沒有配置上游分支並且Git存儲庫設置了遠程數據庫,則啟用“ 發布”操作。這將允許您將當前分支發布到遠程。

git狀態欄發布

承諾

可以通過文件中的上下文操作或通過拖放來完成暫存取消暫存

您可以在更改上方鍵入提交消息,然后按Ctrl + Enter(macOS:⌘+ Enter)提交它們。如果存在任何分階段更改,則僅提交這些更改,否則將提交所有更改。

我們發現這是一個很棒的工作流程。例如,在上一個屏幕截圖中,只有config.js文件將包含在提交中。連續提交操作將同時提交vinyl-zip.jstests.js在單獨的提交中提交。

可以在Git視圖頂部菜單中找到更具體的提交操作...

克隆存儲庫

您可以使用命令選項板⇧⌘P)中Git:Clone命令克隆Git存儲庫系統將要求您提供遠程存儲庫的URL以及放置本地存儲庫的父目錄。

分支和標簽

您可以通過命令選項板⇧⌘P)中Git:Create Branch ...Git:Checkout to ..命令直接在VS代碼中創建和簽出分支

如果您運行Git:Checkout to ...,您將看到包含當前存儲庫中所有分支或標記的下拉列表。

Git結賬

混帳:建立分公司...命令可以讓你快速創建一個新的分支。只需提供新分支的名稱,VS Code將創建分支並切換到它。

遙控器

鑒於您的存儲庫已連接到某個遠程,並且已檢出的分支具有指向該遠程分支的上游鏈接,VS Code為您提供推送拉取同步該分支的有用操作(后者將運行pull命令,然后執行一個命令)。您可以在...菜單中找到這些操作

VS Code能夠定期從您的遙控器獲取更改。這使VS Code能夠顯示本地存儲庫在遠程控制器前面或后面有多少更改。從VS Code 1.19開始,默認情況下禁用此功能,您可以使用該git.autofetch 設置啟用它。

提示:您應該設置憑據幫助程序,以避免每次VS代碼與Git遠程控制器通信時都要求提供憑據。如果不這樣做,您可能需要考慮通過git.autofetch 設置禁用自動提取以減少您獲得的提示數量。

天溝指標

如果您打開一個Git存儲庫的文件夾並開始進行更改,VS Code將向裝訂線和概述標尺添加有用的注釋。

  • 紅色三角形表示已刪除行的位置
  • 綠色條表示新添加的行
  • 藍色條表示修改的行

天溝指標

合並沖突

Git合並

VS Code識別合並沖突。突出顯示差異,並且內聯操作可以接受其中一個或兩個更改。解決沖突后,暫存沖突文件,以便提交這些更改。

查看差異

我們的Git工具支持在VS Code中查看差異。

VS代碼中的文件差異

提示:首先右鍵單擊資源管理器或OPEN EDITORS列表中的文件,然后選擇Select for Compare,然后右鍵單擊要比較的第二個文件,然后選擇與'file_name_you_chose' 進行比較可以區分任意兩個文件或者從鍵盤點擊⇧⌘P並選擇文件:比較活動文件...,您將看到最近的文件列表。

差異編輯器審閱窗格

差異編輯器中有一個審閱窗格,它以統一的補丁格式顯示更改。您可以使用轉到下一個差異F7)和轉到上一個差異⇧F7在更改之間導航可以使用箭頭鍵導航行,按Enter鍵將在Diff編輯器和所選行中跳回。

DIFF審查窗格

注意:此體驗對屏幕閱讀器用戶特別有用。

Git輸出窗口

您可以隨時查看我們正在使用的Git命令。如果發生奇怪的事情或者你只是好奇,這會很有幫助。:)

要打開Git輸出窗口,請運行View > Output從下拉列表中選擇Git

初始化存儲庫

如果您的工作區不在Git源代碼控制之下,則可以使用Initialize Repository命令輕松創建Git存儲當VS Code未檢測到現有Git存儲庫時,您將看到a 沒有活動的源控制提供程序。源控件視圖中的消息和初始化存儲庫命令將在標題欄上提供。您還可以命令選項板⇧⌘P運行Git:Initialize Repository命令

Git初始化存儲庫

運行Initialize Repository將創建必要的Git存儲庫元數據文件,並將您的工作區文件顯示為准備好上傳的未跟蹤更改。

VS Code作為Git編輯器

從命令行啟動VS Code時,可以傳遞--wait參數以使啟動命令等待,直到關閉新的VS Code實例。當您將VS Code配置為Git外部編輯器時,這可能很有用,因此Git將等到您關閉已啟動的VS Code實例。

以下是執行此操作的步驟:

  1. 確保您可以從命令行運行code --help並獲得幫助。
    • 如果您沒有看到幫助,請按以下步驟操作:
      • macOS:選擇Shell命令:命令選項板的路徑中安裝“代碼”命令
      • Windows:確保在安裝期間選擇了“ 添加到PATH ”。
      • Linux:確保通過我們新的.deb或.rpm軟件包安裝了Code。
  2. 從命令行運行 git config --global core.editor "code --wait"

現在您可以運行git config --global -e並使用VS Code作為編輯器來配置Git。

VS代碼中的git config

VS Code作為Git diff工具

將以下內容添加到您的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進行交互式rebase
  • git commit 使用VS Code作為提交消息
  • git add -p然后是e用於交互式添加
  • git difftool <commit>^ <commit> 使用VS Code作為更改的差異編輯器

下一步

  • 簡介視頻 - Git版本控制 - 介紹VS Code Git支持概述的介紹性視頻。
  • 基本編輯 - 了解強大的VS代碼編輯器。
  • 代碼導航 - 快速瀏覽源代碼。
  • 調試 - 這是VS Code真正發揮作用的地方
  • 任務 - 使用Gulp,Grunt和Jake運行任務。顯示錯誤和警告
  • SCM API - 如果要將另一個源代碼管理提供程序集成到VS代碼中,請參閱我們的SCM API。

常見問題

問:嘿,我初始化了我的回購,但...菜單中的操作都是灰色的。是什么賦予了?

答:推送,拉動和同步,您需要設置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和LinuxGit的憑據管理器為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環境。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM