VS Code 中 使用 Git版本控制工具

很早就安装了VS Code,当时只是从一篇技术文章中看到的,说是体积小功能强,支持多种编程语言,各类语法高亮,总之就是很好的意思,因此就下载下来了,不过一直没用过。工做主要是C# ,因此开发都是用的VS,从03版本一直用到如今的17版本. 最近项目过了迫不及待的阶段,打算学习点东西,正好用用VS Code,这个行业不学是真的很快被淘汰,亚历山大~~~html

本篇目录

VS Code 中的Source Control

VS Code 是一款程序編輯器。除了支持多种开发语言编辑外,Source Control 功能是很重要的一部分。目前比较火热的版本控制工具就是Git了,我以前用的一直都是TFS,也是最近一年才开始使用git,用了TFS再转换为git的开发人员,能更深入的体会到分布式版本控制系统的好处。幸运的是VS Code也把支援Git的使用,做为重要功能之一。Source control在VS Code面板左侧功能列表种种,由此看出其重要地位。git

Git简介

在使用Git功能以前,须要对Git有必定的了解。好在我已经用过了,虽然不是很深刻,可是最基本的使用仍是木有问题滴。推荐一个学习Git的好资源 宝哥的 30天精通Git版本管控
了解到Git是 分散式版本控制系统,Git专案有三个主要区域:Git目录工做目录(working directory)暂存区域(Stage area) 等基本知识后,就可使用VS Code的Git功能了。github

VS Code的Git功能,是基于本机电脑安装的Git套件。若是要使用的须要先确认Git条件是否已经安装。若没有安装,请到Git官网下载安装档案并安装到本地。编程

Gitlab上建立仓库(Repository)

你们比较熟知的工具是GitHub,而咱们公司用的是GitLab,功能几乎差很少,平时在外面本身的项目有时候会挂到GitHub上,在公司里面就所有用GitLab了。下面就以GitLab为例,建立仓库。Git能够再本地建立仓库,可是一个项目一般是由各个团队成员一块儿开发,这时候就须要建立远端仓库了。
bash

建立远端仓储

  • 登陆Gitlab ,并建立一个新的项目。
  • 建立成果后拷贝项目中远端仓库的 URL


Clone Gitlab的Repository到本地

  • 在本地建立好须要保存该仓储的目录,好比我用的E:\Projects\NETCoreSpace\Demo\workportal
  • 在建立好的目录中右键 选择Git bash here .输入编程语言

    git clone [URL]分布式

    url就是上一部中拷贝的远端仓库的URL。工具

用VS Code开启该目录

以上工做准备完毕后,打开VS Code,File-Open Folder 选择上面建立的目录。就能够看到,VS Code 会有个图标显示正在存取该目录的git资讯。gitlab

VS code执行基本操做

经过上面的步骤,咱们开启的目录就已经归入了Git管控,若是咱们在VS中作一些变动,对git来讲都是状态的变动。就能够在VS的左测的Git 页签中看到
学习

档案状态


U-Untracked


在View ->Terminal 中输入dotnet new sln -n WorkPortal .能够在当前目录建立一个solution文件。此时在左侧 Git 页签 中就会看到该档案被加入到CHANGES下面并标注一个 U 代表当前文件窗台是Untracked file

A-Added

在左侧的Git页签中,选择该文件右键选择Stage Changes 或者直接点击当前文件后方的【+】号,就会将当前档案由 工做目录(working directory) 放到暂存区域(staging arae). 此时档案会出如今STAGED CHANGES 中并被标注为A,表明git add 的指令被加入到暂存区域。

M-Modified

新建立一个文件,保存为Untitle-1.txt,放入暂存区后,再次编辑文件保存,会发现该文件同时出如今STAGED CHANGES 和CHANGES 中。前者状态是A,后者状态为M.表明该档案已经修改,等待再次被加入到暂存区域。

D-Deletd

在文档目录中对建立的文件作删除动做,此时该文档就会出如今CHANGES中并被标记为D。 StageChanges 以后就会在STAGED CHANGES中显示该文档一样标记为D。输入描述执行Commit以后将会删除此文档。

Commit

若是要将暂存区域中的变动所有Commit到Git目录中,能够在下图区域输入要Commit的信息,而后按下Ctrl+Enter快捷键,就会进行git commit 的动做。

Push


在VS中建立了一个.NetCore应用程序,成功配置并运行。此时远端仓库没有任何内容。本地仓库将这项目文件都已经Commit。 此时能够用Git页签上方的More Action 选择 Push ,推送到远端。

Pull


若是多人共用分支开发,在每次开始编写本身代码的时候最好先pull一下最新代码。能够用Git页面上方的MoreAction中的 Pull 选项。

VS Code中用Git 管理分支Branch


截止到目前建立的项目都是在master分支上进行。在VS code最下方会显示当前分之的信息。关于分支的管控,我是一只遵循gitflow的 版本管控流程。

  • master 主分支,受保护分支,正式网站的最新的,一致的代码
  • develop 开发分支,受保护分支,测试网站最新的,一致的代码
  • feature 分支,用于新功能开发,随着功能的建立和完成而建立和删除
  • bugfix 分支,用于测试系统bug修复,随着功能的修正而建立和删除
  • hotfix分支,用于正式系统紧急bug修复,随着功能的修正而建立和删除
  • release分支,用于测试代码发布都正式网站而建立的分支,随着发布的需求而建立和删除。

关于分支我目前所用到的操做主要以下:

  • 分支的建立 CheckOut/Start[git flow ]
  • 分支的签出 CheckOut:签出指定分支代码
  • 分支的合并 Merge:将不一样分支代码进行合并
  • 分支的提取 Pull:将远端分支的修改抓取到本地
  • 分支的推送 Push:将本地修改内容推送到远端分支
  • 分支的删除 Delete :删除当前分支全部内容
  • 分支的撷取 Fetch:这个功能不多用,撷取只是将内容同步到暂存区并不会更新现有代码。
  • 分支的同步 Sync:先Push再Pull

VSCode中对Branch的支持确定也是必不可少的,在VSCode中能够在最下方看见Git的当前分支,点击分支名称,能够在最上方弹出一个对话框,在里面能够Checkout已经存在的分支以及建立新的分支。

建立一个新分支

Create new branch... --develop分支

如上图在弹出的内容中选择 【+Create new branch】 这时候会弹出以下内容,让填写Branch 的名称,而后按Enter键完成建立或者按Esc键取消建立。
这里输入develop 并 Enter,建立成功后会自动切换到develop分支。在最下方的成色条框内最左侧就会显示develop。

此时develop 默认是从master分支建立的。且是建立在本地仓库的分支。

Create new branch from... --feature 分支

前面的操做与上面相同,不一样的是在按下Enter以后会弹出选择从哪一个分支建立。以下图所示,这个分之是一个feature分支,用来修改主页面,因此选择从develop分支建立。建立完成后,会自动签出当前建立的分支。

这里面由于没有用gitflow,随意就是在分支命名上有所区分。后面会研究一下VS中是否能够用gitflow 仍是只能结合git 命令来用。

推送当前分支 Push

在Git页签的 More Action中选择Push 就能够将本地仓库develop推送到远端。从gitlab中就能够看到develop分支了.

推送当前分支 Push

在Git页签的 More Action中选择Push 就能够将本地仓库develop推送到远端。从gitlab中就能够看到develop分支了

签出分支 Checkout

当前分支是在最后建立的feature-ChangeHomePage中,想要切换到其余分支。这个地方忽然想要测试一下分支的签出与VS中的签出差别。先说一下我在VS中的操做:若是在一个分支下修改的代码,要想切换到另外一个分支,必须签入或者复原此分支的修改,才能签出另一个分支。

在VSCode 中我在当前分支feature-ChangeHomePage分支中修改了Views下Home中的index.cshtml文件。修改后我直接签出develop分支,将代码在develop分支上作了Stage以及Commit的动做,此时发现这个Commit就真的在develop分支生效了。而并不向VS中同样会禁止这种操做。

提交代码成功后,我再次签出feature-ChangeHomePage分支,发现这里代码是没有变动的。

我感受这块的处理仍是有点问题的,虽然此次是刻意为之,但这样并彻底没有规避这种问题,若是向VS中一旦修改了代码,哪怕是Untracked状态,不Commit或者undo以前都不容许切换到其余分支,会更好一点。

提取分支 pull


目前master分支的代码和develop分支是不一致的,为了测试这个功能从远端将develop分支合并到master分支,而后在本地对master分支进行pull操做。

同步分支 Sync

是上面操做中先Push再Pull 和合并。

以上的这些操做都会转换为对应的git command ,出如今VSCode的output窗口中。

参考文献

感恩每个写文档将知识分享给你们的人,耗时还耗力,还可能收到一些人的恶意评论。其实我也喜欢写不过不是写在博客上。后面有时间能够将本身总结的一些东西也都慢慢放上来,能帮助别人最好,能收到指正和指导也很棒,像无私分享的小伙伴学习。

这是我第一篇从草稿里面发布出来的随笔,若是有错误的内容还但愿各位浏览我文章的伙伴儿们能不吝指出哦!

相关文章
相关标签/搜索