?
このドキュメントでは、 php中國語ネットマニュアル リリース
git-status - 顯示工作樹的狀態(tài)
git status [<options>…] [--] [<pathspec>…]
顯示索引文件和當前HEAD提交之間存在差異的路徑,工作樹和索引文件之間存在差異的路徑,以及工作樹中未由Git跟蹤的路徑(并且不會被gitignore [5]忽略) )。首先是你would
通過跑步提交的內容git commit
; 第二和第三是could
在運行git add
之前運行的內容git commit
。
-s --short
以短格式輸出輸出。
-b --branch
甚至以短格式顯示分支和跟蹤信息。
--show-stash
顯示當前隱藏的條目數量。
--porcelain=<version>
為腳本提供易于解析格式的輸出。這與短輸出類似,但在Git版本中保持穩(wěn)定,并且不管用戶配置如何。詳情請參閱下文。
版本參數用于指定格式版本。這是可選的,默認為原始版本v1
格式。
--long
以長格式輸出輸出。這是默認設置。
-v --verbose
除了已更改的文件名稱之外,還會顯示將要提交的文本更改(即與輸出一樣git diff --cached
)。如果-v
指定了兩次,那么還會顯示尚未上演的工作樹中的更改(即與輸出一樣git diff
)。
-u<mode> --untracked-files=<mode>
顯示未跟蹤的文件。
The mode parameter is used to specify the handling of untracked files. It is optional: it defaults to all
, and if specified, it must be stuck to the option (e.g. -uno
, but not -u no
).
可能的選項是:
no
- 不顯示未跟蹤的文件。
normal
- 顯示未跟蹤的文件和目錄。
all
- 還顯示未跟蹤目錄中的單個文件。當-u
不使用選項時,顯示未跟蹤的文件和目錄(即與指定相同normal
),以幫助您避免忘記添加新創(chuàng)建的文件。由于需要額外的工作才能在文件系統(tǒng)中查找未跟蹤的文件,因此在大型工作樹中,此模式可能需要一些時間??紤]啟用未跟蹤緩存和分離指標如果支持的話(見git update-index --untracked-cache
和git update-index --split-index
),否則,你可以使用no
有git status
返回更快,而不會顯示未跟蹤的文件??梢允褂胓it-config [1]中記錄的status.showUntrackedFiles配置變量來更改默認值。--ignore-submodules = <when>查找更改時忽略對子模塊的更改。<when>可以是“none”,“untracked”,“dirty”或“all”,這是默認設置。如果子模塊包含未跟蹤或已修改的文件,或者HEAD與超級項目中記錄的提交不同,并且可用于覆蓋ignore
選項在git-config [1]或gitmodules [5]中。當使用“未跟蹤”時,如果子模塊僅包含未跟蹤內容(但仍然針對修改內容進行掃描),則子模塊不會被視為臟。使用“dirty”忽略對子模塊工作樹的所有更改,只顯示存儲在超級項目中的提交更改(這是1.7.0之前的行為)。使用“all”隱藏對子模塊的所有更改(并在status.submoduleSummary
設置了配置選項時禁止輸出子模塊摘要)。 - 也顯示忽略的文件。-z使用NUL而不是LF終止條目。--porcelain=v1
如果沒有給出其他格式,這意味著輸出格式。--column = <選項> --no-column在列中顯示未跟蹤的文件。有關選項語法,請參閱配置變量column.status。--column--no-column
沒有選項相當于always
和never
分別。<pathspec> ...請參閱pathspec
gitglossary [7]中的條目。輸出此命令的輸出旨在用作提交模板注釋。默認的長格式設計為人類可讀,詳細和描述性的。它的內容和格式隨時可能發(fā)生變化。輸出中提到的路徑與其他許多Git命令不同,它是相對于當前目錄而言的,如果您在子目錄中工作(這是為了幫助剪切和粘貼)。請參閱下面的status.relativePaths配置選項。小格式在短格式中,每個路徑的狀態(tài)顯示為XY PATH1 - > PATH2其中PATH1
是路徑HEAD
,而“ -> PATH2
”部分僅在顯示時顯示PATH1
對應于索引/工作樹中的不同路徑(即文件被重命名)。這XY
是一個雙字母狀態(tài)碼。字段(包括->
)由一個空格相互分隔。如果文件名包含空格或其他非打印字符,則該字段將以C字符串文字的方式引用:由ASCII雙引號(34)字符包圍,并且包含內部特殊字符反斜線轉義。對于具有合并沖突的路徑,X
以及Y
顯示合并每一側的修改狀態(tài)。對于沒有合并沖突的路徑,X
顯示索引Y
的狀態(tài),并顯示工作樹的狀態(tài)。對于未跟蹤的路徑,XY
是??
。其他狀態(tài)代碼可以解釋如下:
''=未修改
M
=修改
A
=已添加
D
=已刪除
R
=重命名
C
=復制
U
=已更新但尚未裝入
被忽略的文件未列出,除非--ignored
選項生效,在這種情況下XY
是!!
。
X Y Meaning------------------------------------------------- [MD] not updated M [ MD] updated in index A [ MD] added to index D [ M] deleted from index R [ MD] renamed in index C [ MD] copied in index[MARC] index and work tree matches[ MARC] M work tree changed since index[ MARC] D deleted in work tree-------------------------------------------------D D unmerged, both deleted A U unmerged, added by us U D unmerged, deleted by them U A unmerged, added by them D U unmerged, deleted by us A A unmerged, both added U U unmerged, both modified-------------------------------------------------? ? untracked! ! ignored-------------------------------------------------
子模塊具有更多的狀態(tài),相反,報告M子模塊具有與索引m中記錄的HEAD不同的子模塊具有修改的內容?子模塊具有未跟蹤文件,因為子模塊中的修改內容或未跟蹤文件無法通過git add
超級項目添加以準備提交。
m
并?
遞歸應用。例如,如果子模塊中的嵌套子模塊包含未跟蹤文件,則也會報告此情況?
。
如果使用-b,則短格式狀態(tài)前面有一行
## branchname tracking info
版本1的瓷質格式與短格式類似,但保證不會以Git版本之間不兼容的方式或基于用戶配置進行更改。這使它成為腳本解析的理想選擇。上面短格式的描述也描述了瓷器格式,但有一些例外:
用戶的color.status配置不受尊重; 顏色將始終關閉。
用戶的status.relativePaths配置不受尊重; 顯示的路徑將始終與存儲庫根目錄相關。
還有一種推薦用于機器解析的備用-z格式。在這種格式下,狀態(tài)字段是相同的,但其他一些事情會改變。首先,->
從重命名條目中忽略該字段,并且字段順序顛倒(例如from -> to
變成to from
)。其次,NUL(ASCII 0)跟在每個文件名后面,將空格替換為字段分隔符和終止換行符(但空格仍將狀態(tài)字段與第一個文件名隔開)。第三,包含特殊字符的文件名不是專門格式化的; 不執(zhí)行引用或反斜杠轉義。
任何子模塊更改都將報告為已修改M
而不是m
或單個報告?
。
版本2格式添加了有關工作樹狀態(tài)和更改項目的更詳細信息。第2版還定義了一套易于解析可選標題的可擴展集合。
標題行以“#”開頭,并在響應特定命令行參數時添加。解析器應該忽略它們不認識的標題。
如果--branch
給出,則會打印一系列標題行,其中包含有關當前分支的信息。
Line Notes------------------------------------------------------------# branch.oid <commit> | (initial) Current commit.# branch.head <branch> | (detached) Current branch.# branch.upstream <upstream_branch> If upstream is set.# branch.ab +<ahead> -<behind> If upstream is set and the commit is present.------------------------------------------------------------
在標題之后,會打印一系列行以跟蹤條目。取決于改變的類型,可以使用三種不同的線格式之一來描述條目。被跟蹤的條目以未定義的順序打印; 解析器應該允許以任何順序混合3種線型。
普通更改的條目具有以下格式:
1 <XY> <sub> <mH> <mI> <mW> <hH> <hI> <path>
Renamed or copied entries have the following format:
2 <XY> <sub> <mH> <mI> <mW> <hH> <hI> <X><score> <path><sep><origPath>
Field Meaning -------------------------------------------------------- <XY> A 2 character field containing the staged and unstaged XY values described in the short format,with unchanged indicated by a "." rather than a space. <sub> A 4 character field describing the submodule state."N..." when the entry is not a submodule."S<c><m><u>" when the entry is a submodule.<c> is "C" if the commit changed; otherwise ".".<m> is "M" if it has tracked changes; otherwise ".".<u> is "U" if there are untracked changes; otherwise ".". <mH> The octal file mode in HEAD. <mI> The octal file mode in the index. <mW> The octal file mode in the worktree. <hH> The object name in HEAD. <hI> The object name in the index. <X><score> The rename or copy score (denoting the percentageof similarity between the source and target of the move or copy). For example "R100" or "C75". <path> The pathname. In a renamed/copied entry, thisis the path in the index and in the working tree. <sep> When the `-z` option is used, the 2 pathnames are separatedwith a NUL (ASCII 0x00) byte; otherwise, a tab (ASCII 0x09)byte separates them. <origPath> The pathname in the commit at HEAD. This is only present in a renamed/copied entry, and tells where the renamed/copied contents came from. --------------------------------------------------------
未合并的條目具有以下格式; 第一個字符是“u”以區(qū)別于普通的已更改的條目。
u <xy> <sub> <m1> <m2> <m3> <mW> <h1> <h2> <h3> <path>
Field Meaning -------------------------------------------------------- <XY> A 2 character field describing the conflict typeas described in the short format. <sub> A 4 character field describing the submodule stateas described above. <m1> The octal file mode in stage 1. <m2> The octal file mode in stage 2. <m3> The octal file mode in stage 3. <mW> The octal file mode in the worktree. <h1> The object name in stage 1. <h2> The object name in stage 2. <h3> The object name in stage 3. <path> The pathname. --------------------------------------------------------
在跟蹤的條目(如果請求)之后,會打印一系列行,以便在工作樹中找到未跟蹤的項目,然后忽略它們。
未跟蹤的項目具有以下格式:
? <path>
忽略的項目具有以下格式:
! <path>
當-z
給出該選項時,路徑名將按原樣打印并且不帶任何引用,并且行以NUL(ASCII 0x00)字節(jié)結尾。
如果沒有這個-z
選項,帶有“不尋?!弊址穆窂矫麑凑张渲米兞康恼f明引用core.quotePath
(請參閱git-config [1])。
該命令榮譽color.status
(或status.color
- 他們意味著相同的事情,后者保持向后兼容性)和color.status.<slot>
配置變量來著色其輸出。
如果config變量status.relativePaths
設置為false,則顯示的所有路徑都是相對于存儲庫根目錄而不是當前目錄。
如果status.submoduleSummary
設置為非零數字或true(與-1或無限制數字相同),則將為長格式啟用子模塊摘要,并顯示修改子模塊的提交摘要(請參閱--summary-limit選項git-submodule [1])。請注意,狀態(tài)命令的摘要輸出將在所有子模塊diff.ignoreSubmodules
被設置為all
或僅限其中的子模塊時被抑制submodule.<name>.ignore=all
。要查看忽略子模塊的摘要,可以使用--ignore-submodules = dirty命令行選項或git submodule summary
命令,該命令顯示類似的輸出,但不遵守這些設置。