vue – git

今天差不多從中午開始下午一點才開始學的,把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為剛才說的唯一標誌符,沒有<>符號;回退到前面的版本後你查看提交歷史就是當時那個時候的提交歷史,想要查看所有的包括在他之後的需要輸入第三條命令

Tags: