$git status
# On branch master# Changes not staged for commit:#? (use "git add ..." to update what will be committed)#? (use "git checkout -- ..." to discard changes in working directory)##? ? modified:? readme.txt#no changes added to commit (use"git add"and/or"git commit -a")
掌握倉庫當前的狀態(tài),readme.txt被修改過了,但還沒有準備提交的修改。
git status命令的輸出十分詳細,但其用語有些繁瑣。 如果你使用git status -s命令或git status --short命令,你將得到一種更為緊湊的格式輸出。 運行g(shù)it status -s,狀態(tài)報告輸出如下:
$ git status -s
M README
MM Rakefile
A? lib/git.rb
M? lib/simplegit.rb
?? LICENSE.txt
新添加的未跟蹤文件前面有??標記,新添加到暫存區(qū)中的文件前面有A標記,修改過的文件前面有M標記。 你可能注意到了M有兩個可以出現(xiàn)的位置,出現(xiàn)在右邊的M表示該文件被修改了但是還沒放入暫存區(qū),出現(xiàn)在靠左邊的M表示該文件被修改了并放入了暫存區(qū)。 例如,上面的狀態(tài)報告顯示:README文件在工作區(qū)被修改了但是還沒有將修改后的文件放入暫存區(qū),lib/simplegit.rb文件被修改了并將修改后的文件放入了暫存區(qū)。 而Rakefile在工作區(qū)被修改并提交到暫存區(qū)后又在工作區(qū)中被修改了,所以在暫存區(qū)和工作區(qū)都有該文件被修改了的記錄。
$ git diff readme.txt
diff --git a/readme.txt b/readme.txt
index46d49bf..9247db6100644--- a/readme.txt
+++ b/readme.txt
@@ -1,2 +1,2 @@
-Gitisa version control system.
+Gitisa distributed version control system.
Gitisfree software.
git diff顧名思義就是查看difference,顯示的格式正是Unix通用的diff格式,可以從上面的命令輸出看到,我們在第一行添加了一個“distributed”單詞。