在VS代码中使用版本控制

在VS代码中使用版本控制

Visual Studio Code集成了源代码控制,并包含了内置的Git支持。许多其余源代码控制提供程序可经过VS Code Marketplace上的扩展得到。html

 

提示:单击扩展磁贴以阅读市场中的说明和评论。react

SCM提供商

VS Code支持同时处理多个源控制提供程序。例如,您能够在TFS本地工做区旁边打开多个Git存储库,并在项目中无缝地工做。源控制视图(^⇧GSOURCE CONTROL PROVIDERS列表显示检测到的提供者和存储库,您能够经过选择特定提供者来肯定更改的显示范围。linux

源控制提供商

若是要安装其余SCM提供程序,请在“ 源代码管理”视图的“ 更多(...)”下拉列表中的“ 安装其余SCM提供程序...”命令将显示可用的SCM提供程序扩展的列表。git

安装其余scm提供程序

Git支持

VS Code附带Git源代码管理管理器(SCM)扩展。大多数源代码控制UI和工做流程在其余SCM扩展中很常见,所以阅读Git支持将帮助您了解如何使用其余提供程序。github

注意:若是您是Git的新手,git-scm网站是一个开始使用热门在线图书,入门视频备忘单的好地方VS Code文档假设您已经熟悉Git。数据库

git概述

注意: VS Code将利用您机器的Git安装,所以您须要在得到这些功能以前先安装Git确保至少安装版本2.0.0api

提示: VS Code能够与任何Git存储库一块儿使用。若是您尚未私有托管的Git提供程序,Visual Studio Team Services是一个很好的免费选项。点击这里注册bash

左侧的“源代码管理”图标将始终指示您当前在存储库中有多少更改概述单击它将显示当前存储库更改的详细信息: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环境。

相关文章
相关标签/搜索