vue - git

10發表於2022-04-28

今天差不多從中午開始下午一點才開始學的,把git學了一大半了,還好任務不是很多,但是我上午用的時間挺值的,因為我去搞了個cnblogs的背景主題,就是你們現在所看到的這套,這個沒搞明白有一通研究的,只不過現在已經搞熟悉了,新增那些引數,不得不說挺強大的,這個自己編輯頁面的功能,我最滿意的這套主題,是自適應,以前用的預設的那個手機根本看不了,沒想到現在這個居然還可以自適應對手機使用者簡直福音。
然後第二件事情,今天開始用typora了,感覺還可以,不知不覺一大版筆記,都頭頭是道的,我後面就用Markdown編輯器傳上來了,因為順便可以把我的筆記一起傳上來,再配合點我做的效果演示。
搞了半天的typora自動上傳圖片到部落格園裡來那個Python指令碼,終於搞好了,以後就方便了我的筆記自動傳上來。

1.關於版本控制

  1. 版本控制軟體

即負責管理檔案版本的軟體,記錄檔案的版本變化

  1. 好處

以命令的形式,操作簡便等

  1. 分散式版本控制系統

客戶端是伺服器的完整備份,並不是只保留最新版本,而是會把伺服器的所有版本下下來,這樣的話,如果伺服器資料丟失,可以從任意一臺客戶端恢復

2.git基本概念

  1. 什麼是git

開源的分散式版本控制系統,特點:專案越大越複雜,協同開發者越多越能體現git的高效能和高可用性

  1. 特性
  • svn基於差異比較:就是當更新一次版本的時候,不是去記錄最新的版本而是將最新的版本的差異點記錄下來

image-20220428155820623

  • 記錄快照

git裡面的記錄快照分為兩種,一種是版本變化了會在原檔案上對更新的版本做一個備份,如果沒有更新就直接做出一個連結指向原始檔,如下圖,虛線為沒有更新,實現表示更新了

image-20220428160745959

其實這個快照就類似於虛擬機器裡面的快照,你每建立一次快照是不是因為你做出了一些操作想儲存在這裡,每次快照都是完整的體系所以佔用洗盤空間大

  • 近乎所有操作都是本地執行,只需要訪問本地檔案和資源,因為前面說過git是分散式控制系統,客戶端和伺服器的資源是一樣的,你有三個版本我也有三個版本,而且這一特性也決定了我們在斷網後照樣可以版本管理 ,如果斷網後你把v3升級到了v4,你只管升級你的,伺服器也檢測不到因為斷網了,當我們聯網後會把記錄同步到雲端的

image-20220428161419477

  1. git三個區域(工作區、暫存區、git倉庫)

當你在寫程式碼的時候,程式碼的目錄就是一個工作區;當你把程式碼寫完一個功能後可以暫時放到暫存區;最後全部完成將其放到git倉庫

  1. git三狀態

image-20220428162455940

  1. git基本工作流程

寫程式碼,然後將寫好的功能放在暫存區裡面暫存,此時就已經過了已修改、已暫存狀態,繼續回去完善邏輯,當把所有功能實現後以快照的形式提交到git倉庫裡面

3.安裝配置git

  1. 安裝後檢驗檢視右鍵選單
  2. 配置

設定使用者名稱和郵箱地址:

image-20220428163511337

注意使用了global選項後說明這個命令只需要執行一次即可永久生效,後面就不用這個命令了

  1. 全域性配置

上面的命令執行後其實會在c盤/users/使用者名稱資料夾/.gitconfig這裡面顯示,這就是git的全域性配置檔案只要配置在這裡面的配置一次永久生效。

  1. 檢查配置資訊

也可以使用命令快速檢視

image-20220428164548495

  1. 獲取幫助資訊(不用聯網)

git help 我們的命令

eg :git help config

或者 git config -h

4.git基本操作

  1. 獲取git倉庫的兩種方式
  • 將一個本地目錄轉換為git倉庫

    在當前目錄下右鍵git Bash,輸入git init。即可初始化一個倉庫,當前目錄下會有一個.git的隱藏起來的目錄,他就是當前專案的git倉庫,裡面包含了一些初始化的必要檔案

  • 從其他伺服器克隆一個git倉庫

  1. 工作區中四種狀態

分為兩大類

一類是未被git管理的:那就會有未跟蹤狀態(在git上一次提交之前沒有這個檔案,也就是新建立的)

一類是已被git管理的:未修改(工作區裡的內容和git倉庫內容一致)、已修改(工作區裡面的內容和git倉庫內容不一樣)、已暫存(工作區修改的檔案已放入暫存區,準備進入已提交狀態)

注意:git操作的終極結果為:讓工作區的檔案都處於“未修改”狀態

  1. 檢查檔案狀態

git status(輸出的結果叫狀態報告)

image-20220428171127551

關鍵字:Untracked files 表示未跟蹤狀態

以精簡方式顯示檔案狀態:git status -s

image-20220428171417338

??表示未跟蹤

  1. 跟蹤新檔案

git add 這個檔案

image-20220428171737735

committed:新增了這個檔案的管理並且放到了暫存區,committed表示暫存區

精簡版為A開頭

  1. 提交更新

git commit 或者 git commit -m 可以對這個提交成功後作進一步的描述

image-20220428172414825

這個就表示未修改狀態,沒有任何檔案需要提交了

image-20220428172510197

  1. 對已提交的檔案進行修改

當我們把已經提交到倉庫的index.html又拿到工作區上來修改,這個時候去status會顯示modified,簡寫版為M這就是已修改狀態

  1. 暫存已修改的檔案

再次執行git add即可 該命令可以吧未跟蹤、已修改的檔案放到暫存區

注意:未跟蹤放到暫存區為A開頭,已修改放到暫存區還是modified,還是M但是沒放之前為紅色,現在為綠色

  1. 撤銷對檔案的修改

將工作區修改的內容還原成倉庫裡面的內容,所有修改都會丟失且無法恢復,危險性高

git checkout -- index.html



  1. 向暫存區一次性新增多個檔案

git add .

今後開發這個命令用的比較多

  1. 取消暫存檔案

從暫存區移出一些檔案

git reset HEAD 要移出的檔名稱

全部移出出去 git reset HEAD .

  1. 移除檔案

    • 從git倉庫和工作區都移除

    git rm -f index.js

    • 只從git倉庫移除,保留工作區中的

    git rm --cached index.css

  2. 忽略檔案

一般有些檔案是不需要納入git的管理當中的,也不希望出線在未跟蹤列表裡面。

建立一個.gitignore的配置檔案(這個檔案是可以上傳的)

規範如下:

  • # 開頭都是註釋

  • / 結尾是目錄

  • / 開頭防止遞迴

  • !開頭表示取反

  • glob模式指簡化了的正則:

    • image-20220428175738147
    • 例子image-20220428180033034

    注意:/開頭表示遞迴,這裡的意思是隻需略當前目錄下todo資料夾,而不忽略其他目錄下todo資料夾,這就是遞迴;

    倒數第二個:只是忽略這個目錄下的txt檔案,但是不會忽略這個目錄下的子目錄下的txt檔案

    1. 檢視提交歷史

    git log

    git log -2 顯示最新的兩條

    git log -2 --pretty=oneline在一行上展示最近的兩條

    git log -2 --pretty=format:“%h | %an | %ar | %s“ 在一行上展示最近的兩條並自定義輸出格式

    %h表示提交的唯一標識 %an表示作者名字 %ar作者修訂日期 %s提交說明

    1. 回退到指定版本

    image-20220428182011214

    注意:commitID為剛才說的唯一標誌符,沒有<>符號;回退到前面的版本後你檢視提交歷史就是當時那個時候的提交歷史,想要檢視所有的包括在他之後的需要輸入第三條命令

相關文章