[TOC] #### 1. 前言 --- git status 命令用于查看當(dāng)前 git 中的文件狀態(tài) 這個(gè)命令會將工作區(qū)、暫存區(qū)、版本庫中的文件狀態(tài)輸出到命令行界面 ``` git status ``` git status 命令是 git 中最常用的命令之一,當(dāng)我們要執(zhí)行命令操作時(shí),一般都會先執(zhí)行這個(gè)命令查看下當(dāng)前狀態(tài),因?yàn)橹挥挟?dāng)我們知道當(dāng)前狀態(tài)是什么,才會清楚的知道,我們接下來應(yīng)該怎么進(jìn)行操作 #### 2. 各種狀態(tài) --- 當(dāng)版本庫中沒有提交記錄時(shí),查看狀態(tài)會有以下提示 ``` # 還沒有提交記錄 No commits yet ``` 當(dāng)沒有文件被修改或被刪除,也沒有未跟蹤的文件時(shí) ``` # 沒有可以提交到版本庫的內(nèi)容 (可以創(chuàng)建或拷貝文件,然后使用 "git add" 進(jìn)行跟蹤) nothing to commit (create/copy files and use "git add" to track) ``` 當(dāng)有未跟蹤的文件時(shí) ``` # 未跟蹤的文件 Untracked files: # 使用 "git add" 命令將其添加到將要 commit 的內(nèi)容中 (use "git add <file>..." to include in what will be committed) 1.txt # 暫存區(qū)中沒有內(nèi)容,但存在未跟蹤的文件(使用 "git add" 進(jìn)行跟蹤) nothing added to commit but untracked files present (use "git add" to track) ``` 一個(gè)新文件使用 git add 添加到暫存區(qū)后,查看狀態(tài) ``` # 要提交的更改(其實(shí)就是將要提交到版本庫中的內(nèi)容) Changes to be committed: # 使用 "git rm --cached <file>..." 取消暫存 (use "git rm --cached <file>..." to unstage) new file: 1.txt ``` 修改暫存區(qū)的文件或已提交到版本庫的文件后,查看狀態(tài) ``` # 未提交的更改 Changes not staged for commit: # 使用 "git add <file>..." 更新將要 commit 的內(nèi)容 (use "git add <file>..." to update what will be committed) # 使用 "git restore <file>..." 放棄工作目錄中的更改 (use "git restore <file>..." to discard changes in working directory) modified: 1.txt # 提交時(shí)未添加任何更改 (使用 "git add" 或 "git commit -a") 補(bǔ)充: 當(dāng)暫存區(qū)中沒有內(nèi)容時(shí)才會有該提示 no changes added to commit (use "git add" and/or "git commit -a") ``` 補(bǔ)充: 綠色字體代表是暫存區(qū)中的內(nèi)容,紅色代表是工作區(qū)中的內(nèi)容 ``` # 工作區(qū)(紅色): Untracked files Changes not staged for commit # 暫存區(qū)(綠色): Changes to be committed ``` #### 3. -s 參數(shù) --- 可以使用 -s 參數(shù)來獲取簡短的輸出結(jié)果,常見的幾種狀態(tài)碼如下所示 | 狀態(tài)碼 | 描述 | | ------------ | ------------ | | A | 暫存區(qū)中新增的文件 | | D | 文件被刪除 | | M | 文件被更改 | | R | 文件被重命名 | | ?? | 工作區(qū)中未被跟蹤的文件 | ![](https://img.itqaq.com/art/content/5c9e5c3b58aa1a93a3d328e1a73bf092.png) #### 4. `--ignored` 查看所有被忽略的文件 --- ``` git status --ignored ```