Git學習筆記(3): Git基本操作(歷史記錄、版本前進和後退、找回文件、文件內容比較)

在這裏插入圖片描述


注:轉載請標明原文出處鏈接:https://xiongyiming.blog.csdn.net/article/details/106105282


1 查看當前工作狀態

查看當前工作狀態命令爲: git status

(1) 當文件被修改,沒有提交到暫存區時,使用命令:git status ,結果如下圖所示,提示一個文件未被追蹤,表示當前修改的文件未被提交到暫存區。

在這裏插入圖片描述


(2) 當文件提交到暫存區後,使用命令:git status ,結果如下圖所示:

在這裏插入圖片描述


(3) 文件從暫存區提交到Git倉庫後,使用命令:git status ,結果如下圖所示:

在這裏插入圖片描述




2 查看歷史結交記錄

查看Git歷史結交記錄命令爲: git log ,結果如下圖所示:

在這裏插入圖片描述


通過命令:git log --pretty=oneline 可以查看簡約版歷史提交記錄,結果如下圖所示:

在這裏插入圖片描述


也可以通過命令:git log --oneline 可以查看簡約版歷史提交記錄,結果如下圖所示:

在這裏插入圖片描述


也可以通過命令: git reflog 查看歷史記錄,如下圖所示,可以看到有 HEAD@{0}HEAD@{1} 信息,其作用時方便後退到某一個版本,數字表示後退到當前版本需要多少步。

在這裏插入圖片描述




3 版本的前進和後退

首先查看版本提交記錄,結果如下圖所示:

在這裏插入圖片描述


爲了方便進行版本的前進和後退操作,對 README.md 文件多進行幾次修改、提交操作。

第一次修改後提交到倉庫,結果如下圖所示:

在這裏插入圖片描述


接下來與上面的步驟相同,第二次修改後提交到倉庫,結果如下圖所示:

在這裏插入圖片描述


第三次修改後提交到倉庫,結果如下圖所示:

在這裏插入圖片描述


第四次修改後提交到倉庫,結果如下圖所示:

在這裏插入圖片描述


通過命令 git reflog 查看歷史提交記錄,結果如下:

在這裏插入圖片描述



版本的前進和後退需要通過 指針 HEAD 來進行控制


HEAD控制的方式有三種:
(1) 使用版本號進行操作(常用):
命令格式爲:git reset --hard 版本號

(2) 使用^符號進行操作,只能後退:
命令: git reset --hard HEAD^ 表示後退一個版本
命令: git reset --hard HEAD^^ 表示後退兩個版本

(3) 使用~符號進行操作,只能後退:
命令: git reset --hard HEAD~ 表示後退一個版本;
命令: git reset --hard HEAD~~ 表示後退兩個版本;
命令: git reset --hard HEAD~5 表示後退5個版本;
命令: git reset --hard HEAD~n 表示後退n個版本;


注:命令參數有 soft, mixed, hard ** 三種類型:**
(1) 參數 soft 表示本地Git倉庫移動HEAD指針
(2) 參數 mixed 表示本地Git倉庫移動HEAD指針重置暫存區
(3) 參數 hard 表示表示本地Git倉庫移動HEAD指針重置暫存區,重置工作區



下面舉例說明版本後退和前進。

使用版本號進行操作,其命令格式爲:git reset --hard 版本號

後退到版本號爲:1217f11的版本,命令爲:git reset --hard 1217f11,結果如下圖所示:

在這裏插入圖片描述


當然也可以前進到剛纔的版本:命令爲:git reset --hard 4786d84,結果如下圖所示:

在這裏插入圖片描述




4 刪除文件後找回文件

4 .1 Git倉庫(本地庫)刪除文件後找回文件

假設新建一個 d123.txt 文件後提交到Git倉庫,然後倉庫需要刪除該文件,其步驟爲:
刪除工作區 d123.txt 文件 ——> 提交到暫存區 ——> 提交到倉庫


(1) 新建 d123.txt 文件後提交到Git倉庫,如下圖所示:

在這裏插入圖片描述



(2) 刪除Git倉庫的 d123.txt 文件

在這裏插入圖片描述



那麼問題來了,工作區、暫存區和倉庫中的 d123.txt 文件均被刪除,該如何找回刪除的文件?
此時就需要版本的後退,即可找回文件。

首先查看版本提交記錄,然後退回到指定版本即可。如下圖所示:

在這裏插入圖片描述



4.2 暫存區刪除文件後找回文件

假設新建一個 d456.txt 文件後提交到Git倉庫,然後刪除文件提交到暫存區後,突然想找回該文件,此時倉庫的文件並沒有本刪除,只需要將指針HEAD後退到提交 d456.txt 文件對應的版本即可,本質就是將調整指針HEAD的方向。


(1) 新建 d456.txt 文件後提交到Git倉庫

在這裏插入圖片描述



(2) 刪除暫存區的 d123.txt 文件

在這裏插入圖片描述



(3) 找回文件
步驟:通過提交記錄,查詢提交 d456.txt 文件至倉庫的版本號,後退到該版本即可。結果如下圖所示:

在這裏插入圖片描述




5 版本中的文件內容比較

對於版本之間同樣文件內容比較可以使用命令 git diff 進行操作


比較文件的差異有多種情況:

  1. 第一種:工作區暫存區文件比較,命令格式爲: git diff 文件名
  2. 第二種:工作區Git倉庫文件比較,命令格式爲:git diff HEAD 文件名
  3. 第三種:工作區Git倉庫不同版本文件比較,命令格式爲:git diff 版本號 文件名

注:不添加文件名進行比較時,將自動比較多個相同文件名文件。


舉例說明:
假設當前Git倉庫有 d123.txtd456.txt 文件,現在對工作區文件進行修改。

(1) 工作區文件修改,不提交到暫存區
使用命令:git diff d123.txt 進行工作區和暫存區文件比較
使用命令:git diff d456.txt 進行工作區和暫存區文件比較

在這裏插入圖片描述


當不添加文件名時(git diff),自動比較多個文件,如下圖所示:

在這裏插入圖片描述



(2) 工作區文件修改,提交到暫存區,並未提交到倉庫

在這裏插入圖片描述


使用命令:git diff d123.txtgit diff d456.txt 將工作區文件和暫存區文件對比,如下圖所示,工作區和暫存區沒有區別,因爲工作區文件被提交到暫存區了。

在這裏插入圖片描述


使用命令:git diff HEAD d123.txtgit diff HEAD d456.txt 將工作區文件(工作區文件和暫存區相同,因爲工作區文件被提交到暫存區了) 和倉庫文件對比,如下圖所示,發現有區別了。

在這裏插入圖片描述



(3) 工作區文件修改,提交到Git倉庫
使用命令 git diff HEAD d123.txtgit diff HEAD d456.txt 分別將工作區文件和倉庫文件比較,結果如下圖所示,發現沒有區別。

在這裏插入圖片描述


可以通過命令: git diff 版本號 文件名 查詢工作區和其他版本之間的文件比較,結果如下圖所示:

在這裏插入圖片描述






參考資料

[1] https://www.bilibili.com/video/BV1bs411N7ny?p=5
[2] https://www.bilibili.com/video/BV1pW411A7a5?p=23



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章