2021-02-19

一、ajax基礎

  1. ajax概述

數(shù)據(jù)是存放在服務端的,無法通過已知的API獲取

我們希望對服務端發(fā)送請求并且接受服務端返回的響應,是否可以通過js向服務端發(fā)送請求,不再是“單機游戲”模式呢?

AJAX:使我們可以通過js直接獲取服務端最新的內容,而不必重新加載頁面,同時讓web更接近桌面應用的功能。比如 google搜索,輸入某個內容,會實時彈出相關內容,優(yōu)化了用戶體驗。

AJAX是瀏覽器提供的一套API,可以通過js調用,實現(xiàn)通過代碼控制請求和響應。

應用場景:按需獲取數(shù)據(jù);對用戶數(shù)據(jù)檢驗;自動更新頁面內容;提升用戶體驗,無需刷新

  1. ajax體驗

    jq中的ajax方法:獲取指定接口的數(shù)據(jù),在瀏覽器中查看:

$.ajax({

   url: "https://jsonplaceholder.typicode.com/users",

   type: "GET",

   dataType: "json",

   data: {"id": 1},

   success: function (data) {

    // 使用請求成功的數(shù)據(jù)

    console.log(data);

   }

  })

3.原裝ajax

發(fā)送ajax請求的步驟,4步:相比于jq的ajax方法要復雜一些:

// 1.創(chuàng)建一個 XMLHttpRequest 類型的對象 --- 相當于打開了一個瀏覽器

  var xhr = new XMLHttpRequest();

  // 2.打開一個與網址之間的連接 --- 相當于在地址欄輸入網址,訪問json-placeholder這個服務器上的數(shù)據(jù)了

  xhr.open("GET","https://jsonplaceholder.typicode.com/users");

  // 3.通過連接發(fā)送一次請求 --- 相當于點擊回車或者超鏈接

  xhr.send(null);

  // 4.指定 xhr 狀態(tài)變化事件處理函數(shù)  --- 相當于處理網頁呈現(xiàn)后的操作

  xhr.onreadystatechange = function () {

   // 通過判斷 xhr 的 readyState ,確定此次請求是否完成

   if (this.readyState === 4) {

    console.log(this.responseText)

   }

  }

4.XMLHttpRequest類型對象

AJAX API中的核心提供的是XMLHttpRequest類型對象,所有的ajax操作都需要用到這個對象

創(chuàng)建該對象的兼容寫法:

// 1.創(chuàng)建一個 XMLHttpRequest 類型的對象 

  var xhr = null;

  // 兼容寫法

  if (window.XMLHttpRequest) {

   // 標準瀏覽器

   xhr = new XMLHttpRequest();
 
  } else {

   // IE 6 瀏覽器

   xhr = new ActiveXObject("Microsoft.XMLHTTP");

  }
  1. open()方法開啟請求

    第一種:GET 方法,獲取服務器數(shù)據(jù),不上傳或修改數(shù)據(jù):

    xhr.open("GET","https://jsonplaceholder.typicode.com/users?id=1");

    第二種:POST方法,增加服務器數(shù)據(jù),將本地json文件上傳至自己制作的服務器端口:

    xhr.setRequestHeader("Content-Type","application/x-www-form-urlencoded");

  2. send()方法發(fā)送請求GET方法和Post方法有差別,Get方法的數(shù)據(jù)體是直接在網址上修改

    GET方法的send(),無參數(shù)或者參數(shù)為null:xhr.send(null)

    POST方法的send(),需要先設置請求頭xhr.setRequestHeader()xhr.send("name=harry&age=19"); send()中的參數(shù)為數(shù)據(jù)體, Get方法的數(shù)據(jù)體在網址上修改

    參數(shù)則為字符串格式的 數(shù)據(jù) ,用于上傳到服務端的

  3. 響應狀態(tài)分析

    send()方法執(zhí)行之后有3個狀態(tài),通過readyState 的值來反映:

    headers received:xhr.readyState==2

    loading:xhr.readyState==3 此時數(shù)據(jù)可能還未上傳完畢

    done:xhr.readyState==4 此時數(shù)據(jù)完全上傳完畢

  4. 同步和異步

    同步: 一個人在同一時刻只能做一件事情,執(zhí)行一些需要時間的事情需要先等待

    異步:可以同時做多件事情

    xhr.open( ) 參數(shù)為boolern值,默認為 true,表示異步進行加載 ,不建議使用同步加載方式,為了讓其這個事件一定觸發(fā),可以在發(fā)送請求send()之前,先注冊readystatechange這個方法,保障同步異步都可以成功

  5. 響應數(shù)據(jù)格式

    XML格式:一直數(shù)據(jù)描述手段,很老,現(xiàn)在不用,數(shù)據(jù)冗雜太多,不好進行操作

  6. JSON格式 ,服務端采用JSON返回數(shù)據(jù),客戶端按照JSON數(shù)據(jù)處理數(shù)據(jù)

    json數(shù)據(jù)不需要存到變量中,可以新建 json文件,格式 是一個{ },內部類似對象子面量的寫法,不過區(qū)別是屬性名必須加 “ ” ,不用;結尾


// 創(chuàng)建新的json文件中書寫`
`{`

 `"name": "tom",`

 `"age": 19,`

 `"hobby": ["novel","sing"]`

`}

字符串里面內容是json數(shù)據(jù)也是可以的:var str = {"name": "tom","age": 80};

此時,JSON 對象的 parse 方法可以將 json 格式的字符串轉換成 對象格式:

var strObj = JSON.parse(str); console.log(strObj.name)
JSON對象中的方法 stringfy 把字面量方法創(chuàng)建的對象obj轉換為字符串:
console.log(JSON.stringify(obj));

服務端不管采用XML和JSON數(shù)據(jù) 本質上都是講數(shù)據(jù)返回客戶端

  1. json-server

平時我們自己也會寫一寫數(shù)據(jù),通過Ajax獲取,所有需要再本地搭建一個臨時服務器

json-server可以使用它快速搭建一個Web服務器

網址:

搭建步驟:1.安裝 2.定制自己的db-json文件 3.再將這個數(shù)據(jù)庫部署到我們的服務器上 (打開 vscode 的終端功能,在第一行書寫json-server 然后 --watch db-json)4.最后可以根據(jù)服務器分配給我們的接口進行訪問了 我們新建的服務器就是類似 json-placeholder這種的

  1. json文件書寫方法
     "users": [
    
     {
    
     "id": 1,
    
     "name": "tom",
    
     "age": 19,
    
     "class": 1
    
     },
    
     {
    
     "id": 2,
    
     "name": "jerry",
    
     "age": 18,
    
     "class": 2
    
     },
    
     {
    
     "id": 3,
    
     "name": "lucy",
    
     "age": 19,
    
     "class": 1
    
     },
    
     {
    
     "name": "lily",
    
     "age": "19",
    
     "class": "2",
    
     "id": 4
    
     },
    
     {
    
     "name": "lulu",
    
     "age": 18,
    
     "class": 2,
    
     "id": 5
    
     },
    
     {
    
     "name": "harry",
    
     "age": 18,
    
     "class": 1,
    
     "id": 6
    
     },
    
     {
    
     "name": "john",
    
     "age": "19",
    
     "class": "2",
    
     "id": 7
    
     }
    
     ],
    
     "posts": [
    
     {
    
     "id": 1,
    
     "userId": 1,
    
     "title": "javascript",
    
     "content": "js 是一門非常好學語言"
    
     },
    
     {
    
     "id": 2,
    
     "userId": 1,
    
     "title": "jquery",
    
     "content": "jq 是一門非常好學語言"
    
     },
    
     {
    
     "id": 3,
    
     "userId": 2,
    
     "title": "html",
    
     "content": "html 是一門非常好學語言"
    
     },
    
     {
    
     "id": 4,
    
     "userId": 3,
    
     "title": "css",
    
     "content": "css 是一門非常好學語言"
    
     }
    
     ],
    
     "comments": [
    
     {
    
     "id": 1,
    
     "postId": 1,
    
     "content": "good"
    
     },
    
     {
    
     "id": 2,
    
     "postId": 3,
    
     "content": "better"
    
     },
    
     {
    
     "id": 3,
    
     "postId": 4,
    
     "content": "best"
    
     }
    
     ]
    
    }

書寫完成后,打開vscode的終端,輸入 json-server ,和--watch自己的文件名dbs-json,打開其中一個分配的接口如uesr,點擊進入,可以通過/ 的方法查找不同的屬性,如 / 1 可以篩選id為1的user即 tom 的各個屬性,也可以繼續(xù)添加/posts,可以查找 userid為1的post

13.原生AJAX 方法

GET方法,獲取服務器數(shù)據(jù):參數(shù)傳遞都是通過url地址中的 ?來傳遞的,無需設置請求頭,無需設置響應體,或者傳null或者可以直接不傳

     xhr.send(null);
     xhr.onreadystatechange = function () {
     if (this.readyState === 4) {
     console.log(this.responseText);
     }
     }

POST方法,更改增加服務器數(shù)據(jù):需要設置請求頭(setRequestHeader)中的Contrent-Type ,傳遞的數(shù)據(jù)也就是請求體,寫在send()方法的參數(shù)上,send參數(shù)是字符串格式的

xhr.open("POST","http://localhost:3000/users");

然后設置請求頭(setRequestHeader)

send()中請求體的幾種情況:不同的請求體,其請求頭的寫法有不同

第一種簡單版:增加的屬性之間 用 & 符號連接
    xhr.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
    xhr.send("name=lily&age=19&class=2");
 第二種:json格式 ,用模板字符串,可以換行,請求頭也變了
  
 xhr.setRequestHeader("Content-Type","application/json");
     xhr.send(`{
    
     "name": "lulu",
    
     "age": 18,
    
     "class": 2
    
     }`);
     //第三種:請求頭和第二種一樣的,都是json格式,運用json.stingfly 把對象字面量格式轉換為json格式的字符串,不用模板字符串
     xhr.setRequestHeader("Content-Type","application/json");
     xhr.send(JSON.stringify({
     "name": "harry",
     "age": 18,
     "class": 1
     }));

     //設置完成后,可以檢驗是否完成:
     xhr.onreadystatechange = function () {
     if (this.readyState === 4) {
     console.log(this.responseText);
     }
     }</pre>

14.處理響應數(shù)據(jù)渲染
15.封裝AJAX庫
可以多次操作ajax,就不用一邊一邊去書寫了
必須的幾個參數(shù):

  • 參數(shù)1:{string} method 請求方法
  • 參數(shù)2:{string} url 請求地址
  • 參數(shù)3:{Object} params 請求參數(shù)
  • 參數(shù)4:{function} done 請求完成后執(zhí)行的回調函數(shù)

16.一個完整的AJAX封裝函數(shù)如下:

    
     // 統(tǒng)一將方法中的字母轉大寫,便于后面判斷
    
     method = method.toUpperCase();
    
     // 書寫 IE 6 的兼容
    
     var xhr = window.XMLHttpRequest 
    
     ? new XMLHttpRequest() 
    
     : new ActiveXObject("Microsoft.XMLHTTP");
    
     // 將對象格式的參數(shù)轉為 urlencoded的格式
    
     var pairs = [];
    
     for (var k in params) {
    
        pairs.push(k + "=" + params[k]);
    
     }
    
     var str = pairs.join("&");
    
     // 判斷是否是 get 方法,需要更改 url 的值
    
     if (method === "GET") {
    
        url += "?" + str;
    
     }
    
     // 創(chuàng)建打開一個連接
    
     xhr.open(method, url);
    
     var data = null;
    
     // 如果是 post 方法,需要設置請求頭,還有請求體
    
     if (method === "POST") {
    
        xhr.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
    
        data = str;
    
     }
    
     xhr.send(data);
    
     // 執(zhí)行回調函數(shù)
    
     xhr.onreadystatechange = function () {
    
        if (this.readyState !== 4) return;
    
       // 執(zhí)行外部傳進來的回調函數(shù)即可
    
       // 需要用到響應體
    
       done(JSON.parse(this.responseText));
    
     }
    
     }
    
     // 調用函數(shù)
    
     ajax("GET", "http://localhost:3000/users",{"id": 1},function (data) {
    
     console.log(data);
    
     });
    
     ajax("POST", "http://localhost:3000/users",{"name": "john","age": 19,"class": 2},function (data) {
    
     console.log(data);
    
     });

二、ajax常用庫

  1. jq中的 ajax,更加方便,可以參考 w3c 的 jq 參考手冊

    $.ajax({ 內容如下 ,包含多種屬性} ) 其參數(shù)是一個 配置 的對象,對象中包含多種屬性,如:

    url 服務端口 ;

    type 請求方法,默認為 "get" ;

    dataType: "json" (如果數(shù)據(jù)是json格式的話)

    data:傳遞到服務端的數(shù)據(jù),如果是GET方法就通過URL傳遞,如果POST就通過請求體傳遞

    timeout:請求超時時間

    四個回調的方法:

    beforeSend:請求發(fā)起時 觸發(fā)

    success:請求成功時候觸發(fā),比較常用,因為都會希望請求成功

    error:請求失敗觸發(fā)

    complete:請求完成后觸發(fā)(不管是否成功)

    回調函數(shù):查詢請求的狀態(tài)如何

           console.log("before send");`
        
         `},`    //會先于后面輸出
        
         `success: function (data) {`
        
            `console.log(data);  //成功后會將data轉換為對象格式輸出在控制臺
        
         `},`
        
         `error: function (xhr) {`
        
            `console.log(xhr);`
        
         `},  //如果請求的地址不對,則會顯示404,請求的data{} 為錯誤的話,只會返回空對象,不會返回錯誤
        
         `complete: function (xhr) {`
        
            `console.log(xhr);`
        
         `}`
        
         `});`

2.$.get() 方法

傳統(tǒng)的$.ajax( )實現(xiàn):

$.ajax({
    
     url: "http://localhost:3000/comments",
    
     type: "get",
    
     dataType: "json",
    
     data: {"id": 2},
    
     success: function (data) {
    
        console.log(data);
    
     }
    
     })

.get() 方法的參數(shù):.get(“url” ,data{ } ,回調函數(shù) ) ,如果需要另外的參數(shù),可以參考w3c文檔:

$.get("http://localhost:3000/comments", {"id": 1}, function (data) {
    
     console.log(data);
    
     })

3.$.post( )方法

傳統(tǒng)的$.ajax( )實現(xiàn):傳入新的數(shù)據(jù) data: {"postId": 2, "content": "bad"},

 $.ajax({

 url: "http://localhost:3000/comments",

 type: "post",

 dataType: "json",

 data: {"postId": 2, "content": "bad"},

 success: function (data) {

  console.log(data);

 }

 })



$.post("http://localhost:3000/comments", {"postId": 3, "content": "bad"},function (data) {

 console.log(data);

 })

4.其他類型請求

put請求,只能由$.ajax()方法實現(xiàn),功能是可以 更改數(shù)據(jù),和post有些類似:

 $.ajax({

 url: "http://localhost:3000/comments/4",

 type: "put",

 dataType: "json",

 data: {"content": "good", "postId": 2},

 success: function (data) {

    console.log(data)

 }

 })

// delete 請求,刪除數(shù)據(jù),沒有data這一屬性,直接在url上選擇要刪除的數(shù)據(jù)

 $.ajax({

 url: "http://localhost:3000/comments/5",

 type: "delete",

 success: function (data) {

?    console.log(data)

 }

 })

jQery其他的方法,也可以在jQery參考手冊進行自學,如:

// ajaxSetup() 方法,設置默認的參數(shù)

 $.ajaxSetup({

 url: "http://localhost:3000/users",

 type: "post"

 })

之后所有的ajax請求,url和type都不需要書寫了,已經通過$.ajaxSetup() 方法設置好了

5.Axios介紹:是目前應用最為廣泛的ajax庫

中文官網:axios-js.com 支持promise,后續(xù)會學到promise

Axios庫:直接用sript標簽引用

體會 get 請求

 axios.get("http://localhost:3000/posts")

 .then(function (response) {

?    console.log(response.data)

 })

 .catch(function (error) {

?    console.log(error)

 })</pre>

6.Axios API

axios方法:配置項如下:

axios({

 url: "/comments",

 method: "post",
 //基礎url,多個端口的公共部分,是完整url地址的前綴,此時url只用寫完整url
 的后面部分
 baseURL: "http://localhost:3000",
 //請求頭一般默認是"application/json"
 headers: {

?    "Content-Type": "application/json"

 },

 timeout: 1000,
 //傳入json格式數(shù)據(jù)
 data: {

?    "postId": 3,

?    "content": "better"

 }
 //params  :即將與請求一起發(fā)送的url參數(shù),當方法類型為get 和 delete時,直接在url地址上進行獲取或者刪除的時候,可以設置這個參數(shù)
//以json格式返回,會轉換為對象格式
 }).then(function (res) {

 console.log(res.data)

 }).catch(function (error) {

 console.log(error)

 })

7.axios方法的全局默認值

在axios方法之前進行配置:

axios.defaults.baseURL = "http://localhost:3000"; 配置baseurl的默認值

8.axios方法的參數(shù),不用設置配置項,直接把url設置為第一個參數(shù):

axios("http://localhost:3000/posts", {

 params: {

?    id: 1

 }

 })
 //不用設置回調函數(shù),then方法設置成功后的效果,參數(shù)res 是返回的響應體response

 .then(function (res) {

 console.log(res.data)

 })

 .catch(function (error) {

 console.log(error)

 })
  1. 攔截器

  2. 快速請求方法 get 和post delete put 增刪改查

    //直接在url上修改,也可以設置params
     axios.get("http://localhost:3000/users?id=2")
    
     .then(function (res) {
    
    ?    console.log(res.data)
    
     })
     //設置params
     axios.get("http://localhost:3000/users",{
     params: {
     id: 3
     }
     })

// post 請求 ,添加數(shù)據(jù),數(shù)據(jù)直接作為了參數(shù),不用寫成 date:{}格式了

  axios.post("http://localhost:3000/users",{
 
  "name": "nancy",
 
  "age": 19,
 
  "class": 2
 
  })
 
  .then(function (res) {
 
  console.log(res.data)
 
  })</pre>

11.onload / onprogress

xhr. onload 事件,只在 請求完成時觸發(fā),相當于readyState=4的階段

xhr.onprogress 事件 ,只在請求時觸發(fā),相當于readyState=3的階段

事件對象有兩個屬性:loaded 和 total
  xhr.onprogress = function (e) {
 
  console.log("progress",this.readyState)
 
  // 在周期性請求過程中,接收到的數(shù)據(jù)的個數(shù)
 
  console.log(e.loaded);
 
  // 接收數(shù)據(jù)的總個數(shù)
 
  console.log(e.total);
 
  }
 
  xhr.send(null);

12.response屬性和responseType

     var xhr = new XMLHttpRequest();
    
     xhr.open("GET", "http://localhost:3000/posts");
     //設置響應體的數(shù)據(jù)類型為json,就不用像之前那樣用json.stringfy("responseText")把字符串轉換為對象了
    
     xhr.responseType = "json";
    
     xhr.onload = function () {
    
     console.log(this.response);
    
     }
    
     xhr.send(null);

三、跨域和模板引擎

  1. JSONP原理

    是一種借助script標簽發(fā)送跨域請求的技巧,原理是在script 標簽請求服務端的一個地址

    返回一段帶有某個全局函數(shù)調用的Javascript腳本

  2. jq中的jsonp

    $.ajax() ,使用時將dateType設置為sonp 即可

    $.ajax({
    
    ?    url: "https://www.baidu.com/sugrec?pre=1&p=3&ie=utf-8&json=1&prod=pc&from=pc_web",
    
    ?    type: "GET",
    
    ?    dataType: "jsonp",
    
    ?    jsonp: "cb",  //這條屬性可以設置回調函數(shù)的參數(shù)名稱(必須與后臺接口的回調函數(shù)參數(shù)名保持一致)
    
    ?    jsonpCallback: "abc", //jQ 自動分配的回調函數(shù)的名稱進行重命名
    
    ?    data: {"wd": "ajax"},//wd 表示文字,是百度的一種要求格式,“ajax”是輸入的搜索內容
    
    ?    success: function (data) {
    
    ?     console.log(data)
    
    ?    }
    
     })

目的:點擊按鈕,獲取 輸入“ajax”文字后,控制臺返回的與之有關的提示語,如 ajax的跨域,ajax的同步異步等信息

什么是cors跨域:客戶端不需要做出變化,只需要服務端在被請求的時候添加一個Acess-Control-Allow-Origin的響應頭

Acess-Control-Allow-Origin的值 :* 便是允許任意源訪問

http://foo.coom 允許指定的源訪問

3.模板引擎的作用

減少字符串拼接 ; 在模板里解析json,然后跟html內容拼接,性能也更好,可以不用進行字符串的拼接

如騰訊的 art-Template,模板引擎

常用語法 <% 與 %>符號包裹起來的語句為模板的邏輯表達式,如for循環(huán)的書寫格式

、 <% for (var i = 0 ; i < 5 ; i++) { %>

      <div>這是一個模板中的 div<%= i %></div>

 <!-- name 是參數(shù)二這一對象的屬性名,可以作為變量 -->

      <div>這是一個模板中的 div<%= name %></div>

 <% } %>

將模板內的內容添加到 box 里面:

 // template() 方法可以調用模板內容

 // 參數(shù)1: 調用的模板的id

 // 參數(shù)2:是一個對象型的數(shù)據(jù),數(shù)據(jù)會傳給模板,對象中的每個屬性的屬性名在模板中可以直接當變量名使用

 $(".box").html(template("tem", {name: "tom"}));

四、Git操作

1.git是分布式代碼管理

git安裝和初始化 官網 https://www.git-scm.com

git配置:用戶信息配置 輸入: $git config --golbal user.name " 自己的名字"

用戶郵箱信息配置 : $git config --global user.emal " 自己的郵箱地址"

2.工作區(qū):自己寫html css js 工作文件的地方,文件傳到暫存區(qū)暫存

暫存區(qū): 在內存暫時存儲

版本庫: 覺得暫存區(qū)的內容沒有問題,可以存到版本庫,真正存放本地內容的地方

3.初始化

托管文件夾:創(chuàng)建一個空白文件夾,右鍵打開 git bash ,輸入自己的命令:

輸入 $git init 回車后就初始化成功了

4.提交到本地倉庫

第一步:把文件提交到暫存區(qū):

git add./ 文件的url 提交某個文件

git add ./ 提交所有文件

第二步:git commit -m “提交的注釋信息” 提交到版本庫, 每次修改文件之后再次提交都需要這兩部

狀態(tài)查看 :git status查看你上次提交之后是否對文件發(fā)生過修改

如果自己改了文件,沒有再次書寫 git add .,書寫 git status可以進行查看

5.提交日志

git log --oneline 可以直接查看自己添加的注釋信息

6.回退版本

git reset Head~ i 回退到上i個版本,會保留歷史記錄

git reset --hard Head~i 強制退回到上i個版本,刪除后續(xù)的歷史記錄,盡量不用

git reflog

7.分支 合并 和沖突處理 (git的精髓所在)

執(zhí)行 git init的時候,默認git 會為自己創(chuàng)建一個master 分支

master 分支是我們存儲的主分支 ,我們需要創(chuàng)建臨時分支,后期測試

沒有問題,才能將測試分支合并到主分支,工作時每個人會有臨時分支進行分配

實際工作時是不允許在主分支直接修改的

創(chuàng)建分支命令 :

git branch (分支名) 如 git branch dev 添加了一個dev的分支

git checkout(分支名) 如 :git checkout dev 切換到dev這一個分支,也可以切換到主分支

將沒有問題的臨時分支 如 dev 合并到主分支:

首先先切換到主分支 git checkout master

然后合并git merge dev
沖突和如何解決沖突

如果這時修改了文件,相當于主分支修改了,然后提交,切換到dev分支,在dev分支 再

次修改文件,提交,這個時候就有了沖突,需要再工作區(qū)進行手動更改,選擇哪條分支由領導再次

決定,也可以選擇兩條都保留,沖突解決后,只是工作區(qū)有了更改,需要再次提交add 和commit

Github :

就是把版本庫的本地文件傳到Github進行托管

自己先注冊, 首先點擊右上角 + 號,新建一個倉庫,然后獲取自己倉庫的鏈接url

git clone origin 可以直接從遠端倉庫克隆島本地;

連接遠端倉庫 git remote add origin + 倉庫的url

git push origin master 推送到指定的master分支

在第一次推送時會提示你輸入賬號密碼,然后根據(jù)提示操作即可

刷新自己的遠端倉庫,可以看到已經傳輸成功的文件

如果想要推送 dev 分支

先切換到 dev 分支,還是使用push 命令

推送完成后:

使用 git pull origin master 、可以將選段倉庫的內容下拉到本地,每次push值前,記得

進行一次pull

克?。盒陆ㄒ粋€文件,右鍵打開 git bash ,先初始化

連接遠端倉庫:git remote add origin + 倉庫的url

克?。?code>git clone +倉庫的url

在本地倉庫存在的情況下,可以將遠端倉庫的內容下拉到本地:

git pull origin master這樣可以將本地倉庫和遠端倉庫最新分支版本進行合并

VScode 可視化操作

左側第三個圖標 ,點擊+號把指定的文件傳到暫存區(qū),點擊上方的√ 傳到 版本庫,可以在下方的文本框輸入 注釋 下方的云端 小圖標,可以直接幫助我們進行push 和 pull 的操作

在三個點,可以有更多操作 ,如克隆 創(chuàng)建分支 更改分支等功能

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • 前端開發(fā)面試題 <a name='preface'>前言</a> 只看問題點這里 看全部問題和答案點這里 本文由我...
    自you是敏感詞閱讀 904評論 0 3
  • 一:什么是閉包?閉包的用處? (1)閉包就是能夠讀取其他函數(shù)內部變量的函數(shù)。在本質上,閉包就 是將函數(shù)內部和函數(shù)外...
    xuguibin閱讀 10,051評論 1 52
  • 值類型 (1)值類型賦值的時候不會相互影響 // 值類型let a = 100let b = aa = 200co...
    WEB前端含光閱讀 285評論 0 0
  • 今天感恩節(jié)哎,感謝一直在我身邊的親朋好友。感恩相遇!感恩不離不棄。 中午開了第一次的黨會,身份的轉變要...
    余生動聽閱讀 10,858評論 0 11
  • 彩排完,天已黑
    劉凱書法閱讀 4,479評論 1 3

友情鏈接更多精彩內容