【學習Git】本地庫的命令行操作

本地庫初始化

git init
創建了一個.git隱藏文件,該文件存放的是與本地庫有關的文件
在這裏插入圖片描述

設置簽名

以用戶名和郵箱爲標識,用於區分不同的人(用戶名可以隨意,郵箱不必是真實的,這些與登錄代碼託管中心的賬號密碼無關)

倉庫級別/項目級別

在當前本地庫範圍有效,即在testGit文件夾有效(範圍較小)
git config user.name [名字]
git config user.email [郵箱]

git config user.name lzw
git config user.email [email protected]

在.git文件夾中,以記事本打開config文件,可以看到配置信息保存進來了
在這裏插入圖片描述

系統用戶級別

在登錄操作系統的用戶範圍有效(範圍較大)
git config --global user.name [名字]
git config --global user.email [郵箱]

git config --global user.name lzwPro
git config --global user.email [email protected]

在C:\Users\lzw(用戶名)目錄下,.gitconfig文件中保存着配置信息
在這裏插入圖片描述

基本操作

追蹤文件

對未追蹤的文件進行追蹤,將工作區新建或修改的文件添加至暫存區
git add [文件名]

git add test.txt

提交文件

將暫存區文件提交至本地庫

在編輯器中輸入提交信息
git commit [文件名]

git commit test.txt

在這裏插入圖片描述


在命令行直接輸入提交信息
git commit -m “[提交日誌] [文件名]”

git commit -m "my first commit test.txt"
  • 提交信息:my first commit!
  • 文件內容變化情況
    在這裏插入圖片描述

對於修改了內容的文件,可以不add,直接commit,但是不可撤銷

移除文件

將test.txt文件從暫存區刪除
git rm --cached [文件名]

git rm --cached test.txt

獲取狀態

查看工作區、暫存器的狀態
git status

  • 表示在master分支
  • 沒有已經提交過的,本地庫無文件
  • 沒有可提交的,暫存區無文件
    在這裏插入圖片描述

我們在這裏新建一個txt文件,再次獲取狀態
在這裏插入圖片描述

  • 表示在master分支
  • 沒有已經提交過的,本地庫無文件
  • 存在未追蹤的文件,test.txt未放至暫存區。
    在這裏插入圖片描述

我們追蹤test文件之後,再次獲取狀態

  • 表示在master分支
  • 沒有已經提交過的,本地庫無文件
  • test.txt是將要被提交至本地庫的文件
    在這裏插入圖片描述

將暫存區文件提交之後,再次獲取狀態

  • 表示在master分支
  • 暫存區沒有要提交的,工作區文件無變化
    在這裏插入圖片描述

將test文件內容修改之後,再次獲取狀態

  • 表示在master分支
  • test文件被修改,但未添加至暫存區
    在這裏插入圖片描述

將修改之後的文件進行追蹤,再次獲取狀態

  • 表示在master分支
  • 被修改的test文件可以被提交至本地庫
    在這裏插入圖片描述

刪除文件之後,再次獲取狀態

  • 表示在master分支
  • test文件被刪除,但未添加至暫存區
    在這裏插入圖片描述

  • 表示在master分支
  • 被刪除的test文件可以被提交至本地庫
    在這裏插入圖片描述

查看歷史記錄

形式1:
git log
詳細的顯示提交日誌(只顯示當前版本及之前的版本)
在這裏插入圖片描述
形式2:
git log --pretty=oneline
更美觀的顯示在一行(只顯示當前版本及之前的版本)
在這裏插入圖片描述
形式3:
git log --oneline
哈希值更短(只顯示當前版本及之前的版本)
在這裏插入圖片描述
形式4:
git reflog
顯示跳轉步數(HEAD@{n})(顯示所有版本)
在這裏插入圖片描述

版本的移動

本質上是移動HEAD指針

基於索引值(前進或後退)
git reset --hard [局部哈希值]
根據局部索引值移動版本,下方命令移動至60df1f3版本

git reset --hard 60df1f3

在這裏插入圖片描述
我們查看文件test.txt,確實內容變成了對應的版本
在這裏插入圖片描述


使用^符號(後退)
git reset --hard HEAD[n個^]
版本後退n步

git reset --hard HEAD^

在這裏插入圖片描述
查看test.txt文件
在這裏插入圖片描述


使用~符號(後退)
git reset --hard HEAD~[n]
後退指定的n步

git reset --hard HEAD~1

在這裏插入圖片描述
現在test文件的內容已經成爲一開始提交的內容
在這裏插入圖片描述


對reset查看本地幫助文檔
git help reset

  • --hard:在本地庫移動HEAD指針,重置暫存區,重置工作區
  • --mixed:在本地庫移動HEAD指針,重置暫存區
  • --soft:在本地庫移動HEAD指針

刪除文件與恢復

恢復的前提是:刪除之前的狀態已經提交至本地庫
我們手動將文件刪除
在這裏插入圖片描述
提交至本地庫之後的恢復

git add test.txt
git commit test.txt

查看歷史記錄
在這裏插入圖片描述
我們現在退至未刪除之前的版本即可
在這裏插入圖片描述
可以看到,文件已經恢復
在這裏插入圖片描述
提交至本地庫之前的恢復
未使用git commit命令的恢復

git reset --hard HEAD

比較文件差異

我們將文件內容修改(添加了最後一行)
在這裏插入圖片描述
將工作區內容與暫存器區內容進行比較
git diff [文件名]

git diff test.txt

可以看到增加了的行以及刪除了的行(這裏沒有刪除的行),增加的是綠色,刪除的是紅色
在這裏插入圖片描述


將工作區內容與本地庫歷史記錄內容進行比較 (git diff 後加歷史版本及文件名)
git diff [歷史記錄] [文件名]

git diff HEAD^^ test.txt

在這裏插入圖片描述
可以看到,和之前的版本相比多了3行

當git diff 後不加文件名時,比較的是工作區的所有文件

分支管理

分支:在版本控制過程中,使用多條線,同時推進多個任務。

好處1:同時並行推進多個功能開發,提高開發效率
好處2:如果某一分支開發失敗,不影響其它分支

創建分支

git branch [分支名]
將當前分支的內容複製到新的分支上

git branch hot_fix

查看分支

git branch -v
查看所有的分支
在這裏插入圖片描述
綠色的是當前分支

切換分支

git checkout [分支名]

git checkout hot_fix

在這裏插入圖片描述
可以看到hot_fix爲綠色的分支,即當前的分支爲hot_fix

合併分支

git checkout [分支名1]
git merge [分支名2]
先切換至要被合併的分支,再執行合併,將分支2的內容合併到分支1上。

git checkout master
git merge hot_fix

在這裏插入圖片描述

解決衝突

當兩個分支中相同的行被修改後,那麼兩個分支之間的合併將會發生衝突
例如:
在master分支上我們的內容是:
在這裏插入圖片描述
在hot_fix分支上我們的內容是:
在這裏插入圖片描述
那麼合併時會發生衝突
在這裏插入圖片描述
此時打開文件,可以看到發生衝突的內容(=======上方爲當前分支內容,下方爲要合併的分支的內容)
在這裏插入圖片描述
我們對內容進行修改,刪除特殊符號,然後改成我們想要的內容
在這裏插入圖片描述
最後提交內容
git add [文件名]
git commit -m “[日誌]”
這裏不加文件名


linux命令

這是一些常用的linux命令

  1. ll:顯示所有目錄(不含隱藏文件)
  2. ls -la:顯示所有目錄(含隱藏文件)
  3. cd [目錄]:跳轉路徑
  4. mkdir [目錄]:新建文件夾
  5. pwd:查看當前路徑
  6. vim [文件名] :新建文件
  7. :set nu:顯示行號
  8. :wq:退出編輯
  9. cat [文件]:查看文件內容
  10. 空格:向下翻頁
  11. a:向上翻頁
  12. q:退出
  13. tail -n [行數] [文件名]:顯示文件內容的指定行數
  14. rm [文件名]:刪除文件
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章