Git全棧開發者使用指南

1、Git基礎

在這裏插入圖片描述

一、Git簡介

Git是一種分佈式版本控制系統,由Linux之父Linus開發。html

所謂分佈式版本管理系統,就是在每一臺機器上都有一個完整的倉庫。前端

image-20201229212250725

二、Git官網

Git官網:gitvue

image-20201229212543426

在官網上能夠獲取Git的安裝軟件。git

除此以外,還能夠下載《progit》——這是最棒的Git學習資料,並且有中文版本。github

三、Git安裝

https://git-scm.com/downloads官方下載地址下載對應的操做系統版本一步步安裝便可。數據庫

在這裏插入圖片描述

四、Git基本配置

安裝完成以後,在任意目錄下,右鍵 Git Bash Herevim

在這裏插入圖片描述

全局配置郵箱和用戶名(–global表示全局配置,也能夠不配置,每一個倉庫單獨配置)bash

$ git config --global user.name "test"
$ git config --global user.email test@qq.com

五、Git基本概念

5.一、Git工做區域

Git有四個工做區域:app

  • 工做區編輯器

    簡單說工做區就是咱們項目的目錄。

    image-20201229220303023

  • 倉庫區/本地倉庫

    工做區有一個.git目錄,其實這個不是工做區,是Git的版本庫,存儲了Git倉庫的全部版本信息

    image-20201229220345268

    在這裏插入圖片描述

  • 暫存區

    暫存區域是一個文件,保存了下次將提交的文件列表信息,通常在 Git 倉庫目錄中。 有時候也被稱做「索引」,

    不過通常說法仍是叫暫存區域。

  • 遠程倉庫

    對於分佈式版本管理系統,遠程倉庫不是必須存在的,可是一般項目都會有遠程倉庫。例如Github就是咱們很是熟悉的遠程倉庫。

    image-20201229221144078

    基本的Git工做流程以下:

    • 在工做目錄修改文件
    • 暫存文件,將文件快照放入暫存區
    • 提交更新,找到暫存區的文件,將快照永久性存儲到到 Git 倉庫區(本地)
    • 將本地倉庫的變動推送到遠程倉庫

以上幾個區域的關係能夠用下圖表示:

img

5.二、Git分支

分支是爲了將修改記錄的整個流程分開存儲,讓分開的分支不受其它分支的影響,因此在同一個數據庫裏能夠同時進行多個不一樣的修改。

在這裏插入圖片描述

Git 爲咱們自動建立的第一個分支,也叫主分支,通常其它分支開發完成後都要合併到 master

在這裏插入圖片描述

5.三、Git文件狀態

在git中,文件主要有四種狀態:

Life Cycle

  • Untracked: 未跟蹤, 此文件在文件夾中, 但並無加入到git庫, 不參與版本控制. 經過git add 狀態變爲Staged.

  • Unmodify(Committed): 文件已經入庫, 未修改, 即版本庫中的文件快照內容與文件夾中徹底一致. 這種類型的文件有兩種去處, 若是它被修改, 而變爲Modified. 若是使用git rm移出版本庫, 則成爲Untracked文件

  • Modified: 文件已修改, 僅僅是修改, 並無進行其餘的操做. 這個文件也有兩個去處, 經過git add可進入暫存staged狀態, 使用git checkout 則丟棄修改過, 返回到unmodify狀態, 這個git checkout即從庫中取出文件, 覆蓋當前修改

  • Staged: 暫存狀態. 執行git commit則將修改同步到庫中, 這時庫中的文件和本地文件又變爲一致, 文件爲Unmodify狀態. 執行git reset HEAD filename取消暫存, 文件狀態爲Modified

2、Git應用實踐

看完上面的Git基礎,你可能有一些迷惑,接下來,咱們以實際工做中開發的流程來加深對Git的理解吧。

一、克隆項目

能夠經過在工做區使用git init來初始化一個Git倉庫,但一般開發中咱們不會這樣作,由於實際的項目大部分已經進行了部分開發,並進行了版本管理,因此咱們首先作的是從遠程倉庫克隆項目。

這裏我從Gitee(通常開發項目的遠程倉庫是部署在內網的GitLab) fork了一個開源項目,將這個項目做爲遠程倉庫的項目:

image-20201229214855118

點擊克隆下載,能夠看到項目的路徑,

  • HTTPS是憑據式的路徑,使用此路徑,向遠程倉庫推送代碼的時候須要憑據(帳號密碼);

    這種方式向遠程倉庫提交,會要求帳號密碼,輸入完成以後,Win10操做系統能夠選擇記住憑據,這樣就不用每一次都輸入了,Win10操做系統管理憑據 控制面板 → 用戶賬戶 → 憑據管理器 → Windows憑據

    image-20201230174621550

  • SSH是祕鑰式的路徑,向遠程倉庫推送代碼的時候,須要本地的私鑰和遠程倉庫的公鑰對應。

    SSH配置能夠參考 Windows配置Github、Gitee共存的Git環境,這裏就不詳細展開講解。

我已經進行了公私鑰的配置,因此這裏選擇SSH。

image-20201229215107233

使用git clone命令克隆項目

image-20201229215845069

二、代碼管理

項目已經成功克隆,接下來要進行咱們的開發了。

2.一、建立分支

一般開發不是在Master分支上,而是在開發分支上,使用 git branch develop建立一個新分支:

image-20201229222931344

能夠經過git branch命令列出全部分支:

image-20201229223057016

能夠看到咱們新建的分支。

2.二、切換分支

使用git checkout develop命令切換到新建的develop分支:

image-20201229223325328

2.三、添加文件到暫存區

接下來,咱們再develop分支上進行一些開發操做,我這裏對 redeme 進行了一些修改,須要把修改添加到暫存區。

  • 首先經過 git status命令查看工做區文件狀態

    image-20201229223653744

  • 接下來使用 git add README.md命令(可使用git add .添加全部修改)將更改添加到暫存區

image-20201229223945199

能夠看到文件已經添加。

2.四、提交修改到倉庫

接下來使用git commit -m "😀修改了redeme",將修改提交到倉庫

image-20201229224319159

這裏值得一提的是,咱們的提交信息儘可能遵循某種規範,例如在提交信息中體現本次提交的類型:

  • feat :新功能
  • fix : bug修復
  • docs :文檔變動
  • style :與樣式相關的全部變更
  • refactor :既不是bug修復也未添加功能的代碼更改
  • test :與測試有關全部變更
  • chore :改變了構建任務,程序包管理器配置等

規範而精確的提交信息不只能幫助咱們的同事快速瞭解咱們的提交,也對咱們本身的開發和重構有很大的幫助。我喜歡用表情包標註提交類型,這樣從遠程倉庫看提交記錄比較好看😄

在這裏插入圖片描述

能夠經過git log命令查看提交歷史:

image-20201229224851871

2.五、推送修改到遠程倉庫

可使用git push origin develop命令將修改推送到遠程倉庫,在推送以前,一般經過git pull origin develop(本實例遠程倉庫不存在develop分支,因此直接推送)命令來拉取遠程倉庫——這個是爲了不本地版本落後的狀況,固然若是衝突你也能夠強制提交,只是你的同事會作出什麼過激行爲不敢保證。😂

image-20201229231704254

在咱們的遠程倉庫就能夠看到此次提交了:

image-20201229231807331

2.六、合併分支

最終咱們的提交都是要合併到master分支的,首先切換到master分支,接着經過命令,git merge develop命令,將develop分支合併到master

image-20201229232122731

咱們這個分支是沒有衝突的,可能在合併的過程當中會出現衝突的狀況,能夠經過 git status 查看衝突的文件,手動解決衝突。固然,能夠藉助一些開發工具來完成這個工做,下文再講。

2.七、版本回退

假如說,咱們發現此次提交不是咱們想要的,能夠經過 git reset --hard HEAD^ 回退到上一次提交

image-20201229232415498

2.八、打標籤

假如咱們要發佈一個版本,咱們一般會給此次提交打一個標籤 git tag publish/0.0.1

image-20201229232931444

能夠經過git tag命令來查看咱們打的標籤。

3、Git經常使用命令

在上面有這樣一張圖片,基本上平常使用記住這6個命令就能夠了,可是要想熟練使用,可能就須要記住更多命令了,這裏整理了一些經常使用的命令。

img

一、初始化倉庫

# 在當前目錄新建一個Git代碼庫
    $ git init

    # 新建一個目錄,將其初始化爲Git代碼庫
    $ git init [project-name]

    # 下載一個項目和它的整個代碼歷史
    $ git clone [url]

二、配置

Git的設置文件爲.gitconfig,它能夠在用戶主目錄下(全局配置),也能夠在項目目錄下(項目配置)。

# 顯示當前的Git配置
    $ git config --list

    # 顯示 Git 的某一項配置
    $ git config <key>

    # 編輯Git配置文件
    $ git config -e [--global]

    # 設置提交代碼時的用戶信息,選擇global即全局配置
    $ git config [--global] user.name "[name]"
    $ git config [--global] user.email "[email address]"

三、增長/刪除文件

這裏的增長/刪除文件指的是向暫存區增長/刪除文件。

# 查看文件狀態,查看當前工做區新增、更改或刪除的文件
    $ git status
     
    # 添加指定文件到暫存區,能夠添加多個文件,中間以空格隔開
    $ git add [file1] [file2] ...

    # 添加指定目錄到暫存區,包括子目錄
    $ git add [dir]

    # 添加當前目錄的全部文件到暫存區
    $ git add .

    # 添加每一個變化前,都會要求確認
    # 對於同一個文件的多處變化,能夠實現分次提交
    $ git add -p

    # 刪除工做區文件,而且將此次刪除放入暫存區
    $ git rm [file1] [file2] ...

    # 中止追蹤指定文件,但該文件會保留在工做區
    $ git rm --cached [file]

    # 更名文件,而且將這個更名放入暫存區
    $ git mv [file-original] [file-renamed]
    
    # 臨時保存修改,可跨分支
    # save爲可選項
    $ git stash [save message]
    # 全部保存的記錄列表
    $ git stash list
    # 恢復工做進度到工做區,此命令的stash@{num}是可選項,在多個工做進度中能夠選擇恢復,不帶此項則默認恢復最近的一次進度至關於git stash pop stash@{0}
    $ git stash pop [stash@{num}]
    # 恢復工做進度到工做區且該工做進度可重複恢復,此命令的stash@{num}是可選項,在多個工做進度中能夠選擇恢復,不帶此項則默認恢復最近的一次進度至關於git stash apply stash@{0}
    $ git stash apply [stash@{num}]
    # 刪除一條保存的工做進度,此命令的stash@{num}是可選項,在多個工做進度中能夠選擇刪除,不帶此項則默認刪除最近的一次進度至關於git stash drop stash@{0}
    $ git stash drop stash@{num} 
    # 刪除全部保存
    $ git stash clear

四、代碼提交

# 提交暫存區到倉庫區,若是不加-m,會進入vim編輯器
    $ git commit -m [message]

    # 提交暫存區的指定文件到倉庫區
    $ git commit [file1] [file2] ... -m [message]

    # 提交工做區自上次commit以後的變化,直接到倉庫區
    $ git commit -a

    # 提交時顯示全部diff信息
    $ git commit -v

    # 使用一次新的commit,替代上一次提交
    # 若是代碼沒有任何新變化,則用來改寫上一次commit的提交信息
    $ git commit --amend -m [message]

    # 重作上一次commit,幷包括指定文件的新變化
    $ git commit --amend [file1] [file2] ...

五、分支

# 列出全部本地分支
    $ git branch

    # 列出全部遠程分支
    $ git branch -r

    # 列出全部本地分支和遠程分支
    $ git branch -a

    # 新建一個分支,但依然停留在當前分支
    $ git branch [branch-name]

    # 新建一個分支,並切換到該分支
    $ git checkout -b [branch]

    # 新建一個分支,指向指定commit
    $ git branch [branch] [commit]

    # 新建一個分支,與指定的遠程分支創建追蹤關係
    $ git branch --track [branch] [remote-branch]

    # 切換到指定分支,並更新工做區
    $ git checkout [branch-name]

    # 切換到上一個分支
    $ git checkout -

    # 創建追蹤關係,在現有分支與指定的遠程分支之間
    $ git branch --set-upstream [branch] [remote-branch]

    # 合併指定分支到當前分支
    $ git merge [branch]
   
    # 查看分支合併狀態
    $  git rerere status
   
    # 顯示合併衝突解決方案的當前狀態——開始解決前與解決後的樣子
    $  git rerere diff

    # 選擇一個commit,合併進當前分支
    $ git cherry-pick [commit]
    
    #分支重命名
    $ git git branch -m [oldName]  [newName]
    # 刪除分支
    $ git branch -d [branch-name]

    # 刪除遠程分支
    $ git push origin --delete [branch-name]
    $ git branch -dr [remote/branch]

六、標籤

# 列出全部tag
    $ git tag

    # 新建一個tag在當前commit
    $ git tag [tag]

    # 新建一個tag在指定commit
    $ git tag [tag] [commit]

    # 刪除本地tag
    $ git tag -d [tag]

    # 刪除遠程tag
    $ git push origin :refs/tags/[tagName]

    # 查看tag信息
    $ git show [tag]

    # 提交指定tag
    $ git push [remote] [tag]

    # 提交全部tag
    $ git push [remote] --tags

    # 新建一個分支,指向某個tag
    $ git checkout -b [branch] [tag]

七、查看信息

# 顯示有變動的文件
$ git status

# 顯示當前分支的版本歷史
$ git log

# 顯示commit歷史,以及每次commit發生變動的文件
$ git log --stat

# 搜索提交歷史,根據關鍵詞
$ git log -S [keyword]

# 顯示某個commit以後的全部變更,每一個commit佔據一行
$ git log [tag] HEAD --pretty=format:%s

# 顯示某個commit以後的全部變更,其"提交說明"必須符合搜索條件
$ git log [tag] HEAD --grep feature

# 顯示某個文件的版本歷史,包括文件更名
$ git log --follow [file]
$ git whatchanged [file]

# 顯示指定文件相關的每一次diff
$ git log -p [file]

# 顯示過去5次提交
$ git log -5 --pretty --oneline

# 顯示全部提交過的用戶,按提交次數排序
$ git shortlog -sn

# 顯示指定文件是什麼人在什麼時間修改過
$ git blame [file]

# 顯示暫存區和工做區的差別
$ git diff

# 顯示暫存區和上一個commit的差別
$ git diff --cached [file]

# 顯示工做區與當前分支最新commit之間的差別
$ git diff HEAD

# 顯示兩次提交之間的差別
$ git diff [first-branch]...[second-branch]

# 顯示今天你寫了多少行代碼
$ git diff --shortstat "@{0 day ago}"

# 顯示某次提交的元數據和內容變化
$ git show [commit]

# 顯示某次提交發生變化的文件
$ git show --name-only [commit]

# 顯示某次提交時,某個文件的內容
$ git show [commit]:[filename]

# 顯示當前分支的最近幾回提交
$ git reflog

八、遠程同步

# 克隆遠程倉庫
$ git clone [url]

# 下載遠程倉庫的全部變更
$ git fetch [remote]

# 顯示全部遠程倉庫
$ git remote -v

# 顯示某個遠程倉庫的信息
$ git remote show [remote]

# 增長一個新的遠程倉庫,並命名
$ git remote add [shortname] [url]

# 取回遠程倉庫的變化,並與本地分支合併
$ git pull [remote] [branch]

# 拉取遠程分支,同時建立本地分支
$ git fetch [remote] 遠程分支名x:本地分支名x
# 拉取遠程分支,同時建立本地分支,且切換到該分支
$ git checkout -b [branch] [origin/遠程分支名]

# git pull至關於如下兩步
# 一、拉取遠程分支
$ git fetch [remote] [branch]
# 二、合併到當前分支
git merge [remote/branch]

# 上傳本地指定分支到遠程倉庫
$ git push [remote] [branch]

# 強行推送當前分支到遠程倉庫,即便有衝突
$ git push [remote] --force

# 推送全部分支到遠程倉庫
$ git push [remote] --all

# 更新遠程分支列表
$ git remote update [remote] --prune
$ git remote update [remote] -p

# 刪除和遠程倉庫的關聯
$ git remote rm [remote]

九、撤銷

# 恢復暫存區的指定文件到工做區
$ git checkout [file]

# 恢復某個commit的指定文件到暫存區和工做區
$ git checkout [commit] [file]

# 恢復暫存區的全部文件到工做區
$ git checkout .

# 重置暫存區的指定文件,與上一次commit保持一致,但工做區不變
$ git reset [file]

# 重置暫存區與工做區,與上一次commit保持一致
$ git reset --hard

# 重置當前分支的指針爲指定commit,同時重置暫存區,但工做區不變
$ git reset [commit]

#  回退到上一次提交
$ git reset --hard HEAD^
# 重置當前分支的HEAD爲指定commit,同時重置暫存區和工做區,與指定commit一致
$ git reset --hard [commit]

# 重置當前HEAD爲指定commit,但保持暫存區和工做區不變
$ git reset --keep [commit]

# 新建一個commit,用來撤銷指定commit
# 後者的全部變化都將被前者抵消,而且應用到當前分支
$ git revert [commit]

# 暫時將未提交的變化移除,稍後再移入
$ git stash
$ git stash pop

4、在開發工具中使用Git

在Git中一些操做例如解決衝突分支比較等等使用圖形化的操做可能會更加方便快捷。

TortoiseGit是一款不錯的圖形化Git工具,是一個不錯的選擇,下載地址:https://tortoisegit.org/download/

image-20201230175941903

固然,使用開發工具集成Git,也是一個不錯的選擇。

一、在IDEA中使用Git

IDEA是當前最好用的Java開發IDE,IDEA默認集成了對Git的支持,只須要配置設置執行程序便可。

1.一、配置Git

  • File --> Settings--> Version Control --> Git,修改Git執行路徑爲本身安裝的Git路徑。

image-20201226170425899

  • 點擊Test,配置成功會提示Git版本信息

image-20201226170737431

1.二、遠程操做

Idea中能夠很是便捷的進行遠程倉庫相關的操做。

1.2.一、拉取代碼

經過Idea能夠直接拉取遠程倉庫的代碼

  • File --> New ---> Project From Version Controller --> Git

image-20210101122023216

  • 填入遠程倉庫地址,選擇 Clone

image-20210101122201172

這樣遠程倉庫的代碼就克隆到了本地。

1.2.二、拉取遠程分支

上面咱們拉取的是遠程倉庫主幹代碼,咱們也能夠拉取遠程分支代碼。右下角,點開分支。

image-20210101122607056

能夠看到 Remote Branchs,下面就是遠程倉庫的分支。點擊遠程分支,Checkout As,就能夠把遠程分支拉到本地了。

image-20210101124703962

1.2.三、更新代碼

咱們在提交代碼前最好先更新下遠程倉庫的代碼到本地倉庫,這樣能夠減小沒必要要的衝突,更新update能夠直接經過快捷鍵 Ctrl + T ,也能夠經過工具欄上按鍵來實現:

image-20210101125000452

1.2.四、提交/推送代碼

在IDEA中開發好本身的代碼以後如何提交到遠程倉庫呢?右鍵項目-->Git

image-20210101125217192

  • 1.Commit Directory:commit代碼(將stage區的暫存文件提交到當前分支的本地倉庫,並清空stage區),也能夠push代碼(把本地倉庫的文件同步到遠程倉庫)。

image-20210101125736901

    • Commit對應Git的Commit命令,commit到本地倉庫
    • Commit and Push也就是Commit和push,咱們能夠直接在這裏commit到本地倉庫以後,再push到遠程倉庫。

在IDEA中,咱們會看到文件被標識着不一樣顏色:紅色,綠色,藍色。它們分別表明什麼意思呢?

  • 紅色:未被版本控制的文件,即未添加到版本控制的文件,例如咱們添加到ignore中的文件。

  • 綠色:新加入版本的文件,即咱們新建立的文件,還未提交到遠程倉庫。

  • 藍色:修改過的文件,即遠程倉庫中已有該文件,咱們此次對它進行了修改,可是還未提交。

這裏再接着看看幾個按鍵的做用:

image-20210101130202600

2.Add:把本地文件從工做目錄添加到本地倉庫的stage區,對應Git的Add命令。

3.Compare with Branch…:與遠程分支比較。咱們提交前能夠經過此功能比較下咱們工做目錄中代碼和遠程分支代碼的異同。

4.Show History:查看歷史修改版本記錄。

5.Revert:回滾,會將你的本地修改回滾。

6.Repository:各類倉庫命令。

image-20210101130400728

1.三、分支管理

1.3.一、新建分支

點擊New Branch能夠新建分支

image-20210101122733992

1.3.二、分支切換/比較/合併/重命名/刪除

在Idea中這些功能的使用也常簡單,點擊分支,點擊要操做的分支,就能夠看到這些選項

image-20210101123418491

1.四、查看提交歷史

Version Controllerlog能夠查看提交歷史

image-20210101130638650

1.五、合併(處理衝突)

上面咱們提了分支合併,能夠從本地分支合併,也能夠從遠程倉庫合併,通常兩個並行開發的分支合併都是會有衝突,Idea中合併衝突是很是方便的。

  • 在合併過程當中發生了衝突,Idea會提示衝突,選擇Merge

image-20210101131209085

  • Idea提供了三個分欄,咱們能夠點擊箭頭,很方便地處理衝突

image-20210101131313411

  • 若是合併時沒有處理,也能夠在Version Controller中處理

image-20210101131750519

二、在VS Code中使用Git

VS Code是當前最流行的前端開發工具,VS Code對Git的支持不是那麼強大,可是能夠經過插件來加強Git功能。

2.一、基本使用

2.1.一、基本界面

個人VS Code配置了中文包。

點擊左側Git標識,能夠看到不少的操做。

image-20210101133222496

2.1.二、文件狀態

當對文件進行修改後,有三種狀態

alt

  • M 是 modify 的縮寫即該文件存在修改
  • D 是 delete 的縮寫即該文件被刪除了
  • U 是 Update 的縮寫即該文件是新添加

2.1.三、提交代碼

image-20210101134246844

文件按鈕的的意思。

  • 若是是新添加的文件,放棄修改就會提示完全刪除文件。
  • 若是是刪除的文件,選擇放棄修改就會從倉庫中恢復文件 (不再用擔憂誤刪的文件找不到了)
  • 點擊 + 號確認文件的修改就會提到 stash Changes 上 (對應 git add 命令)

image-20210101134415788

確認了文件以後,在輸入框輸入此次更新的內容,而後點擊打勾就能夠保存這一次更新了 (對應 git commit 命令)
若是當前全部的 Changes 都要 commit ,那能夠直接輸入上傳的信息而且打勾就能夠快速 commit 了。

2.1.四、推送代碼

完成提交之後,vscode 的左下角就會出現上箭頭的數字爲 1 (上箭頭是 push 的更新,下箭頭是能夠 pull 的更新)
固然若是以前沒有 push 過代碼的話,這個可能會沒有數字顯示。
這個時候就能夠將代碼推送到 遠程倉庫上了 (對應 git push 命令)

image-20210101135322345

OK,遠程倉庫就能夠看到咱們的提交了。

image-20210101135531641

2.1.五、拉取代碼

也能夠經過 vscode 左下角的下箭頭看到倉庫是否能夠 拉取,而後點擊菜單的 git pull 進行倉庫更新 (對應 git pull 命令)

image-20210101135743780

2.1.五、分支切換

vscode 能夠直接在左下角建立分支,也能夠切換分支。

image-20210101135941565

上面的功能知足了基本要求,若是還須要代碼比對解決衝突,能夠選擇插件,目前公認的最好用的插件是GitLens。

2.二、使用Git插件

2.2.一、安裝GitLens

打開插件商店,搜索 GitLens,安裝便可。

image-20210101140524655

2.2.二、GitLens基本使用

安裝完成以後側邊的工具欄會多出一個 git 分支圖標,點擊就能夠查看更詳細的信息了。

image-20210101141822489

  • 第一個摺疊面板查看全部提交
  • 第二個摺疊面板查看當前打開文件的歷史
  • 第三個摺疊面板查看分支
  • 第四個摺疊面板查看遠程
  • 第五個摺疊面板查看stash的文件
  • 第六個摺疊面板查看標籤
  • 第七個摺疊面板能夠比較不一樣的分支標籤的文件區別

同時發現,每一行代碼都會顯示提交人和提交信息

image-20210101142124359

2.2.三、查看更改

修改文件後,Gitlens 側邊會有顏色塊告訴你代碼的更新狀況:

  • 紅色箭頭表示刪除
  • 藍色塊表示修改
  • 綠色塊表示增添

image-20210101142959836

在右上角點擊查看更改,能夠查看當前文件的更改。

image-20210101142700430

image-20210101143105278

2.2.四、處理衝突

VScode 內置的 git 會告訴你有衝突的文件,而後經過 Gitlens 能夠快速調整衝突。

image-20210101145429996

image-20210101145525530



參考

【1】:Git 從入門到放不下

【2】:經常使用Git命令整理

【3】:Git分支管理策略

【4】:vue-blog

【5】:《progit》

【6】:Windows配置Github、Gitee共存的Git環境

【7】:VScode 結合git的全面使用流程(上)

【8】:VScode 結合git的全面使用流程(下)

相關文章
相關標籤/搜索