>[success] # git 基本指令
1. `git clone`: 克隆遠程代碼到本地
* `git clone xxxx` 具體倉庫克隆下來代碼,文件夾名詞就是當前對應倉庫
* `git clone xxxx 本地自定義項目名`,克隆下的代碼根目錄文件名為自定義
2. `git pull` : 拉取遠程代碼到本地
3. `git status` :查看當前 `git` 狀態
* **Untracked files(未跟蹤的文件)**,未跟蹤的文件意味著 Git 在之前的提交中沒有這些文件,Git 不會自動將之納入跟蹤范圍需要手動將文件納入追蹤狀態
* 加簡潔的狀態信息`git status –s` 或 `git status --short`


4. `git add`:開始跟蹤一個文件(將文件放入到暫存區中)
* `git add 文件名` 放入指定文件到暫存區
* `git add .` 直接把工作目錄下的所有改動全部放進暫存區
* add也支持匹配表達式,如```add \*.java```
5. `git commit`:文件更新提交 將暫存區文件提交到本地倉庫
* `git commit –m "提交信息"` 添加提交信息提交
* `git commit` 通過vi 編譯器編寫備注內容
* `git commit -a -m "修改了bbb文件"`,能提交修改過,但是沒有添加到緩存區的文件(修改過的就能提交)也就是不用先執行 `git add`
6. `git push` : 提交本地代碼到遠程
7. `git log`: 產看提交日志
* `git log` 查看歷史提交的日志
* `git log --oneline` 可以看到簡潔版的日志

* `git log --graph` 圖形狀的日志

* `git log --all --graph --oneline` 圖形狀的日志簡潔版(all 查看所有分支)

* `git log -p` 是`--patch`的縮寫,通過`-p`參數,你可以看到具體每個`commit`的改動細節

8. `git show xxx`,xxx 是 `commit` 號 可以查看某次提交的具體更改,入股忽略xxx 即為當前`commit`(`git show 5e68b0d8 具體一個文件
`)

>[danger] ##### 比較區域差異指令
1. `git diff --staged` -- 可以顯示輸入`git commit`,你將會提交什么
2. `git diff` -- 可以顯示**工作目錄**和**暫存區**之間的**不同**,也就是執行`git add . `
3. `git diff HEAD` -- 比對工作目錄和上一條提交

>[danger] ##### git pull 說明
**從遠程倉庫fetch代碼:從遠程倉庫獲取最新的代碼**,默認情況下是從`origin`中獲取代碼;`git fetch`默認情況下是從`origin`中獲取代碼`git fetch origin`,獲取到代碼后默認并沒有合并到本地倉庫,我們需要通過`merge`來合并 `git merge` 實際上` git pull` 等于`git fetch + git merge(rebase)`
>[success] # 指令速查
