鍍金池/ 教程/ Java/ 倉(cāng)庫(kù)狀態(tài)
操作標(biāo)簽
多人協(xié)作
解決沖突
Git 的誕生
工作區(qū)和暫存區(qū)
搭建 Git 服務(wù)器
Bug 分支
配置別名
從遠(yuǎn)程庫(kù)克隆
分支
添加遠(yuǎn)程庫(kù)
分支管理策略
撤銷(xiāo)修改
安裝 Git
管理修改
生成 SSH key
GitHub
倉(cāng)庫(kù)狀態(tài)
忽略特殊文件
刪除文件
Feature 分支
創(chuàng)建與合并分支
創(chuàng)建版本庫(kù)
創(chuàng)建標(biāo)簽
版本回退
集中式 vs 分布式

倉(cāng)庫(kù)狀態(tài)

我們已經(jīng)成功地添加并提交了一個(gè) readme.txt 文件,現(xiàn)在,是時(shí)候繼續(xù)工作了,于是,我們繼續(xù)修改 readme.txt 文件,改成如下內(nèi)容:

Git is a distributed version control system.
Git is free software.

現(xiàn)在,運(yùn)行git status命令看看結(jié)果:

$ git status
# On branch master
# Changes not staged for commit:
#   (use "git add <file>..." to update what will be committed)
#   (use "git checkout -- <file>..." to discard changes in working directory)
#
#    modified:   readme.txt
#
no changes added to commit (use "git add" and/or "git commit -a")

git status命令可以讓我們時(shí)刻掌握倉(cāng)庫(kù)當(dāng)前的狀態(tài),上面的命令告訴我們,readme.txt 被修改過(guò)了,但還沒(méi)有準(zhǔn)備提交的修改。

雖然 Git 告訴我們 readme.txt 被修改了,但如果能看看具體修改了什么內(nèi)容,自然是很好的。比如你休假兩周從國(guó)外回來(lái),第一天上班時(shí),已經(jīng)記不清上次怎么修改的 readme.txt,所以,需要用git diff這個(gè)命令看看:

$ git diff readme.txt 
diff --git a/readme.txt b/readme.txt
index 46d49bf..9247db6 100644
--- a/readme.txt
+++ b/readme.txt
@@ -1,2 +1,2 @@
-Git is a version control system.
+Git is a distributed version control system.
 Git is free software.

git diff顧名思義就是查看 difference,顯示的格式正是 Unix 通用的 diff 格式,可以從上面的命令輸出看到,我們?cè)诘谝恍刑砑恿艘粋€(gè)“distributed”單詞。

知道了對(duì) readme.txt 作了什么修改后,再把它提交到倉(cāng)庫(kù)就放心多了,提交修改和提交新文件是一樣的兩步,第一步是git add

$ git add readme.txt

同樣沒(méi)有任何輸出。在執(zhí)行第二步git commit之前,我們?cè)龠\(yùn)行git status看看當(dāng)前倉(cāng)庫(kù)的狀態(tài):

$ git status
# On branch master
# Changes to be committed:
#   (use "git reset HEAD <file>..." to unstage)
#
#       modified:   readme.txt
#

git status告訴我們,將要被提交的修改包括 readme.txt,下一步,就可以放心地提交了:

$ git commit -m "add distributed"
[master ea34578] add distributed
 1 file changed, 1 insertion(+), 1 deletion(-)

提交后,我們?cè)儆?code>git status命令看看倉(cāng)庫(kù)的當(dāng)前狀態(tài):

$ git status
# On branch master
nothing to commit (working directory clean)

Git 告訴我們當(dāng)前沒(méi)有需要提交的修改,而且,工作目錄是干凈(working directory clean)的。

http://wiki.jikexueyuan.com/project/git-tutorial/images/git-diff-status.gif" alt="" />

小結(jié)

要隨時(shí)掌握工作區(qū)的狀態(tài),使用git status命令。

如果git status告訴你有文件被修改過(guò),用git diff可以查看修改內(nèi)容。