最近由於項目的需要,我需要負責整個項目的托管,其中涉及到很多Git相關的命令,所以就將之前用到的git相關的命令做了一個總結和歸納。由於開發環境是Linux,所以我接下來的操作命令均針對Linux環境。
git是一個開源的分布式的版本控制系統,主要用於項目的管理。
分布式:git使用分布式管理。即每個節點關系平等,都保存完整代碼,節點之間相互推送或者下載代碼。
集中式:有明確的中央服務器統一管理代碼,每個節點都將代碼上傳中央服務器或者從中央服務器下載代碼。
一、git安裝准備與配置
1、git安裝
$ sudo apt-get install git $ git --version 查看當前git版本
2、git的基本配置
2.1、系統中所有用戶均使用的配置
命令:sudo git config --system 配置文件:/etc/gitconfig e.g. 配置用戶名 cassie@com:~$ sudo git config --system user.name Cassie cassie@com:~$ cat /etc/gitconfig [user] name = Cassie
2.2、當前用戶的所有項目均使用的配置
命令:git config --global 配置文件:~/.gitconfig e.g. 配置用戶郵箱 cassie@com:~$ git config --global user.email cassie@qq.com cassie@com:~$ cat ~/.gitconfig [user] email = cassie@qq.com name = 0513Cassie
2.3、只在當前項目中使用的配置
命令:git config (命令只要在git項目文件夾中執行) 配置文件:project/.git/config e.g.配置編譯器 git config core.editor vscode
二、git操作
下面這種圖是我在網上看到的一張關於git操作總結的一張圖,下面我將按照這張圖片進行一個Git相關命令行的操作總結。

首先,對上圖的幾個概念進行講解一下:
- 工作區(workspace):通過自己的主機操作的git目錄。
- 暫存區(index):用來記錄工作行為的,即所有的操作git的記錄,作為一個暫時保存。
- 本地倉庫(Repository):本地用來備份同步工作區內容的區域。
- 遠程倉庫(Remote):其他主機的git。
2.1、工作區、緩存區、本地倉庫之間數據操作
初始化倉庫
$ mkdir gittest
$ cd gittest
$ git init
查看工作分支的狀態
$ git status * 當工作區和倉庫沒有任何差異的時候不會有任何提示 * 默認工作分支為master,可以通過創建新的分支進行切換
文件提交到暫存區
$ git add [file] $ git add * 全部提交 * 可以一次提交多個內容,中間用空格隔開 * 提交的內容可以是文件也可以是文件夾
刪除暫存區的記錄
刪除內容為文件: $ git rm --cached 文件名稱 刪除內容為文件夾: $ git rm --cached 文件夾名稱 -r
將暫存區記錄的修改內容同步到本地倉庫
$ git commit -m "message"
查看提交日志
$ git log
$ git log --pretty=online 日志單行顯示
2.2、工作區操作
查看工作區文件和本地倉庫的差別 $ git diff [file] 放棄工作區的修改 $ git checkout -- [file] 恢復本地倉庫文件到工作區 $ git checkout [file]
2.3、文件移動
刪除工作區文件並提交到暫存記錄
$ git rm [file]
移動工作區文件並提交到暫存區
$ git mv file dir
2.4、版本控制命令
回到之前的版本 $ git reset --hard HEAD^ * HEAD后面有幾個^表示回到之前的幾個版本 通過commit_id回到指定的版本 $ git reset --hard commit_id 查看操作日志 $ git relog * 獲取到操作記錄后可以根據commit_id去往比較新的版本
2.5、標簽管理(屬於本地倉庫的操作)
創建標簽 $ git tag v1.0 *默認會在最新的commit_id 查看標簽 git tag 查看所有標簽 git show v2.0 查看某個標簽的具體信息 在某個指定的commit_id處打標簽 $ git tag v1.0 [commit_id] 恢復標簽時的狀態 $ git reset --hard v1.0 刪除標簽 git tag -d v2.0
3、常見問題
3.1、git reset --hard commit_id 誤操作如何回到之前的版本
注意git log 命令是查看提交日志,所以如果我們進行上面的回到之前的版本在git log里面是無法查看commit_id的,這時候我們就需要使用 git reflog命令。
注意:git reflog命令是查看操作日志的,在這里我們可以查到所以操作的詳細信息,
拿到commit_id 之后,通過git reset --hard commit_id這個命令回到指定版本即可