案例加解析!帶你總結Git常用操作命令

2022-03-23 22:00:24
本篇文章給大家帶來了關於的相關知識,其中主要通過案例加解析給大家總結了git常用的操作命令,Git 是一個開源的分散式版本控制系統,用於敏捷高效地處理任何或小或大的專案,希望對大家有幫助。

推薦學習:《》

一、Git 概念

Git 是一個開源的分散式版本控制系統,用於敏捷高效地處理任何或小或大的專案,是目前最流行的一個版本管理工具。

二、SVN與Git的最主要的區別

SVN是集中式版本控制系統,版本庫是集中放在中央伺服器的,而幹活的時候,用的都是自己的電腦,所以首先要從中央伺服器哪裡得到最新的版本,然後幹活,幹完後,需要把自己做完的活推播到中央伺服器。集中式版本控制系統是必須聯網才能工作,如果在區域網還可以,頻寬夠大,速度夠快,如果在網際網路下,如果網速慢的話,就納悶了。

Git是分散式版本控制系統,那麼它就沒有中央伺服器的,每個人的電腦就是一個完整的版本庫,這樣,工作的時候就不需要聯網了,因為版本都是在自己的電腦上。既然每個人的電腦都有一個完整的版本庫,那多個人如何共同作業呢?比如說自己在電腦上改了檔案A,其他人也在電腦上改了檔案A,這時,你們兩之間只需把各自的修改推播給對方,就可以互相看到對方的修改了。

三、Windows 上安裝 Git

最早Git是在Linux上開發的,很長一段時間內,Git也只能在Linux和Unix系統上跑。不過,慢慢地有人把它移植到了Windows上。現在,Git可以在Linux、Unix、Mac和Windows這幾大平臺上正常執行了。

1. 下載Git

要使用Git,第一步當然是安裝Git了。從 https://git-for-windows.github.io下載(網速慢的請移步國內映象),然後按預設選項安裝即可。

2. 安裝步驟

下載完成後,開啟進行安裝(按照下圖進行設定)。
在這裡插入圖片描述

3. 安裝成功

接下來就只需要靜靜的等待安裝完成了,完成以後在桌面或者任意資料夾的空白位置右鍵,出現下圖所示的兩個選單欄即表示安裝成功。

在這裡插入圖片描述

4. 設定

安裝完之後會彈出一個命令框,我們還需要做最後一步操作,設定識別符號。由於 git 是分散式管理工具,所以需要設定使用者名稱和郵箱作為標識。在彈出框中輸入下面程式碼即可。

git config --global user.name "Your Name"git config --global user.email "[email protected]"

注意git config --global 引數,有了這個引數,表示你這臺機器上所有的Git倉庫都會使用這個設定,當然你也可以對某個倉庫指定的不同的使用者名稱和郵箱。

四、GIt 常用命令解析

1. 初始化

對 Git 進行操作之前你得先建立一個 Git 倉庫,在你需要的位置建立一個空資料夾即可。然後進入該資料夾,然後右擊空白處,點選 Git Bash Here 對當前資料夾進行 Git 的操作。
在這裡插入圖片描述
在這裡插入圖片描述

  • 初始化命令
git init
  • 常用命令
cd:進入某個目錄
mkdir:建立一個檔案
pwd:顯示當前的目錄路徑
滑鼠選中就是複製,貼上可以右鍵貼上,也可以用使用快捷鍵:Shift+INS

2. 新增檔案到版本庫

2.1 新增到暫存區

  1. 在根目錄新建了一個 a.txt 檔案,內容為 aaa;
  2. 使用下面命令把 a.txt 檔案新增到暫存區
  • 新增到暫存區命令
git add a.txt

在這裡插入圖片描述

  • 新增當前根目錄下的所有檔案到暫存區
git add .

2.2 提交到倉庫

  1. 使用下面命令把暫存區的檔案提交到版本庫
git commit -m "雙引號裡面是註釋——你的提交說明"

在這裡插入圖片描述

2.3 為什麼 Git 新增檔案需要 add、commit 兩個步驟呢?

原因commit可以一次提交很多檔案,所以你可以多次add不同的檔案

例如

git add file1.txt					
#單個新增檔案到暫存區git add file2.txt file3.txt			
#多個新增檔案到暫存區git add .   						
#新增當前資料夾下所有檔案到暫存區git commit -m "add 3 files."		
#提交所有暫存區的檔案

3 檢視檔案狀態(檢查是否有未提交檔案)

3.1 狀態一

使用下面命令檢查當前檔案狀態

git status

在這裡插入圖片描述
結果:沒有需要提交的檔案了;

3.2 狀態二

建立一個新的檔案 b.txt,內容為 bbb,再來檢查檔案狀態
在這裡插入圖片描述
結果存在未跟蹤檔案沒有新增到暫存區和提交到版本庫;

3.3 狀態三

新增 b.txt 到暫存區之後,再來檢查檔案狀態
在這裡插入圖片描述
結果暫存區中有一個新的 b.txt 檔案沒有新增到版本庫中;

3.4 狀態四

提交 b.txt 到版本庫之後,然後把 b.txt 內容從 bbb 修改為 bbba,再來檢查檔案狀態
在這裡插入圖片描述
結果被改變的檔案 b.txt 沒有新增到暫存區且沒有提交

4. 檢視提交歷史

4.1 先把前面修改的 b.txt 檔案新增並提交

git add b.txtgit commit -m "提交修改的 b.txt 檔案"

在這裡插入圖片描述

4.2 檢視歷史

  1. 到目前為止我們一共進行了3次操作,提交 a 和 b,以及修改 b,檢視歷史命令如下
git log

在這裡插入圖片描述
注意使用上面命令資訊多的話會進入 log 模式,想要退出,在英文輸入法的前提下按 q 就可以退出了

  1. 如上圖所示,每次提交都有版本號,時間等資訊,這樣看起來比較亂,出現的資訊太多,看的眼花,我們可以使用下面命令得到精簡版的紀錄檔記錄,讓歷史記錄一行顯示
git log --pretty=oneline

在這裡插入圖片描述

  1. 可以對想要檢視的歷史紀錄檔進行約束,比如想看最近提交的一條歷史紀錄檔資訊
git log -1

在這裡插入圖片描述

4.3 檢視提交歷史命令總結

git log						
#檢視全部歷史提交記錄git log --pretty=oneline	#精簡顯示所有歷史提交記錄git reflog					
#可以檢視所有分支的所有操作記錄(包括已經被刪除的 commit 記錄和 reset 的操作)git log -p					
#檢視全部提交歷史並展示每次修改的內容git log -2					
#檢視最近2次提交歷史(注意:後面的數位是可以自定義的,也就是說,這種寫法是 git log -n 的體現)git log -p -2				
#檢視最近2次提交歷史並展示修改的內容git log --stat				
#檢視提交歷史,並展示摘要內容(摘要會列出修改的檔案以及每個檔案中修改了多少行)

5. 版本回退與恢復

5.1 回退到上一個版本或上幾個版本

  1. 首先,Git必須知道當前版本是哪個版本,在Git中,用HEAD表示當前版本,上一個版本就是HEAD^,上上一個版本就是HEAD^^,當然往上100個版本寫100個^比較容易數不過來,所以寫成HEAD~100
git reset --hard HEAD^

在這裡插入圖片描述

  1. 檢視回退後的歷史版本資訊
    在這裡插入圖片描述
    結果從歷史版本資訊我們可以看出,我們已經從 「修改 b.txt」 回退到了 「提交 b.txt」,回退之後的當前版本為 「提交 b.txt」

5.2 回退到指定版本

  1. 我們直接複製想要回退位置的版本號,使用下面程式碼就可以回退到複製的版本號的位置了
git reset --hard <想要回退的版本號>
  1. 例如:我複製 「提交 a.txt 檔案」 的版本號
git reset --hard 6ec9373d22d1a869b67681a39dc04df34292133b

在這裡插入圖片描述
結果從檢視的歷史版本結果可以看出我們回退到了 「提交 a.txt」 版本

5.3 恢復回退的版本

  1. 有時候我們回退了版本後反悔了,想要返回到回退版本之前,這時我們就需要找到之前的 commit id,但是從上面的檢視歷史版本命令可以看出,我們找不到之前的 commit id 了,於是我們可以使用下面命令
git reflog

在這裡插入圖片描述

結果reflog 可以檢視所有分支的所有操作記錄(包括已經被刪除的 commit 記錄和 reset 的操作)

  1. 假設我們想回退到 「提交修改的 b.txt 檔案」 的位置上,也就是歷史版本資訊的倒數第三行,我們只需要複製 HEAD 前面的 7a42e7b,然後使用下面命令就可以了
git reset --hard 7a42e7b

在這裡插入圖片描述

結果歷史版本資訊可以看出我們已經回退到了我們想要的版本

6. 檢視不同版本的差異

  1. 當我們們修改完程式碼之後沒有新增到暫存區提交,第二天我們忘記了昨天改了什麼程式碼,這是我們就可以按下面步驟來看不同版本之間的差異;

例如:我們把 b.txt 檔案內容修改為為 bbbaaa,然後用下面程式碼檢視,可以看出我們修改了什麼

git diff		# 檢視不同版本之間的檔案差異

在這裡插入圖片描述

7. 修改與復原

7.1 修改檔案

推薦使用:第一次修改 -> git add -> 第二次修改 -> git add -> git commit

注意建議每次 commit 之前先檢查是否有檔案沒有被 add

7.2 復原修改

git checkout -- filename

git checkout -- filename可以丟棄工作區的修改:– 後面是一個空格

命令 git checkout -- readme.txt 意思就是,把 readme.txt 檔案在工作區的修改全部復原,這裡有兩種情況:
一:readme.txt 自修改後還沒有被放到暫存區(git add),現在,復原修改就回到和版本庫一模一樣的狀態;
二:readme.txt 已經新增到暫存區後,又作了修改,現在,復原修改就回到新增到暫存區後的狀態。

總之,就是讓這個檔案回到最近一次 git commitgit add 時的狀態。

注意git checkout -- file 命令中的 -- 很重要,沒有 -- ,就變成了**「切換到另一個分支」**的命令,我們在後面的分支管理中會再次遇到 git checkout 命令

8. 刪除檔案/快取

8.1 使用 rm 命令刪除檔案

通常直接在檔案管理器中把沒用的檔案刪了,或者用rm命令刪除,例如:刪除 b.txt

git rm b.txt

刪除步驟

  • rm 刪除檔案
  • rm 刪除後會自動新增到暫存區,省略了手動 add 命令
  • 最後進行 commit 提交,檔案被刪除
    在這裡插入圖片描述
    注意刪除步驟可以通過 reset 復原操作撤回

8.2 刪除快取區

git rm b.txt --cached

b.txt 處於未跟蹤狀態,也就是從暫存區刪除。

特別說明處於未跟蹤狀態只是沒有存在於暫存區,歷史提交記錄中的記錄依然存在。

8.3 清空快取

所謂的暫存區僅僅是.git目錄下的一個index檔案罷了,這也是為了什麼被稱為index(索引),當刪除暫存區內容的時候,其實就是刪除index檔案中的內容,.git/objects目錄中的內容不會被刪除。

rm .git/index

9. 分支管理

9.1 分支操作命令

git branch						
#檢視分支 git branch <name>				
#建立分支git checkout <name>				
#切換分支git checkout -b <name>			
#建立 + 切換分支git merge <name>				
#將某分支合併到當前分支git branch -d <name>			
#刪除分支

在這裡插入圖片描述

9.2 開發流程圖

在這裡插入圖片描述

五、Git 命令整合

1. 設定全域性使用者名稱和郵箱

命令作用
git config --global user.name 「Your Name」設定使用者名稱
git config --global user.email 「[email protected]設定郵箱

2. 初始化命令

命令作用
git init初始化 git,建立 .git 檔案

3. 常用命令

命令作用
cd進入某個目錄
mkdir建立一個檔案
pwd顯示當前的目錄路徑
滑鼠選中就是複製複製
直接滑鼠右鍵貼上 / 快捷鍵:Shift+INS貼上

4. 新增到暫存區

命令作用
git add a.txt新增 a.txt 到暫存區
git add .新增當前根目錄下的所有檔案到暫存區
git commit -m 「雙引號裡面是註釋——你的提交說明」把暫存區的檔案提交到版本庫(一次全部提交)

5. 檢視檔案狀態

命令作用
git status檢視檔案狀態(檢查是否有未提交檔案)

6. 檢視提交歷史

命令作用
git log檢視全部歷史提交記錄
git log --pretty=oneline精簡顯示所有歷史提交記錄
git reflog可以檢視所有分支的所有操作記錄(包括已經被刪除的 commit 記錄和 reset 的操作)
git log -p檢視全部提交歷史並展示每次修改的內容
git log -2檢視最近2次提交歷史(注意:後面的數位是可以自定義的,也就是說,這種寫法是 git log -n 的體現)
git log -p -2檢視最近2次提交歷史並展示修改的內容
git log --stat檢視提交歷史,並展示摘要內容(摘要會列出修改的檔案以及每個檔案中修改了多少行)

7. 版本回退與恢復

命令作用
git reset --hard HEAD^回退到上一個版本
git reset --hard HEAD~N(不是-,是波浪線)回退到上N個版本
git reset --hard <想要回退的版本號>回退到指定版本
git reflog 和 git reset --hard <想要回退的版本號>合併使用恢復回退的版本

8. 檢視不同版本的差異

命令作用
git diff檢視不同版本之間的檔案差異

9. 復原修改

命令作用
git checkout – b.txt一:readme.txt 自修改後還沒有被放到暫存區(git add),現在,復原修改就回到和版本庫一模一樣的狀態;
二:readme.txt 已經新增到暫存區後,又作了修改,現在,復原修改就回到新增到暫存區後的狀態。

10. 刪除

命令作用
git rm b.txtrm 刪除檔案
rm 刪除後會自動新增到暫存區,省略了手動 add 命令
最後進行 commit 提交,檔案被刪除
git rm b.txt --cached刪除快取區單個檔案,b.txt 處於未跟蹤狀態,也就是從暫存區刪除
rm .git/index清空所有快取

11. 分支管理

命令作用
git branch檢視分支
git branch 建立分支
git checkout 切換分支
git checkout -b 建立 + 切換到新分支
git merge 將某分支合併到當前分支
git branch -d 刪除分支

推薦學習:《》

以上就是案例加解析!帶你總結Git常用操作命令的詳細內容,更多請關注TW511.COM其它相關文章!