最近因爲項目的須要,我須要負責整個項目的託管,其中涉及到不少Git相關的命令,因此就將以前用到的git相關的命令作了一個總結和概括。因爲開發環境是Linux,因此我接下來的操做命令均針對Linux環境。git
git是一個開源的分佈式的版本控制系統,主要用於項目的管理。緩存
分佈式:git使用分佈式管理。即每一個節點關係平等,都保存完整代碼,節點之間相互推送或者下載代碼。服務器
集中式:有明確的中央服務器統一管理代碼,每一個節點都將代碼上傳中央服務器或者從中央服務器下載代碼。分佈式
$ sudo apt-get install git $ git --version 查看當前git版本
2.一、系統中全部用戶均使用的配置spa
命令: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.二、當前用戶的全部項目均使用的配置命令行
命令: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.三、只在當前項目中使用的配置版本控制
命令:git config (命令只要在git項目文件夾中執行) 配置文件:project/.git/config e.g.配置編譯器 git config core.editor vscode
下面這種圖是我在網上看到的一張關於git操做總結的一張圖,下面我將按照這張圖片進行一個Git相關命令行的操做總結。日誌
code
首先,對上圖的幾個概念進行講解一下:
- 工做區(workspace):經過本身的主機操做的git目錄。
- 暫存區(index):用來記錄工做行爲的,即全部的操做git的記錄,做爲一個暫時保存。
- 本地倉庫(Repository):本地用來備份同步工做區內容的區域。
- 遠程倉庫(Remote):其餘主機的git。cdn
初始化倉庫
$ 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 日誌單行顯示
查看工做區文件和本地倉庫的差異 $ git diff [file] 放棄工做區的修改 $ git checkout -- [file] 恢復本地倉庫文件到工做區 $ git checkout [file]
刪除工做區文件並提交到暫存記錄
$ git rm [file]
移動工做區文件並提交到暫存區
$ git mv file dir
回到以前的版本 $ git reset --hard HEAD^ * HEAD後面有幾個^表示回到以前的幾個版本 經過commit_id回到指定的版本 $ git reset --hard commit_id 查看操做日誌 $ git relog * 獲取到操做記錄後能夠根據commit_id去往比較新的版本
建立標籤 $ 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
注意git log 命令是查看提交日誌,因此若是咱們進行上面的回到以前的版本在git log裏面是沒法查看commit_id的,這時候咱們就須要使用 git reflog命令。
注意:git reflog命令是查看操做日誌的,在這裏咱們能夠查到因此操做的詳細信息,
拿到commit_id 以後,經過git reset --hard commit_id這個命令回到指定版本便可