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窗口中。

參考文獻

感恩每個寫文檔將知識分享給你們的人,耗時還耗力,還可能收到一些人的惡意評論。其實我也喜歡寫不過不是寫在博客上。後面有時間能夠將本身總結的一些東西也都慢慢放上來,能幫助別人最好,能收到指正和指導也很棒,像無私分享的小夥伴學習。

這是我第一篇從草稿裏面發佈出來的隨筆,若是有錯誤的內容還但願各位瀏覽我文章的夥伴兒們能不吝指出哦!

相關文章
相關標籤/搜索