此四種狀態可以使用git status指令來觀察,現在專案下的所有資料的狀態。
所有的指令所產生的動作,皆在Client端執行,直到git push這個指令,才是真正的上傳至server端。以下將把上傳之整個流程寫出。
新增檔案與上傳至server:
1.在專案資料夾,新增一個檔案之後,輸入git status,會出現以下畫面
# On branch master
# Untracked files:
# (use "git add
#
# test
nothing added to commit but untracked files present (use "git add" to track)
我們會看到Untracked files:,就字義上來說即為未追蹤之檔案,也就是說此檔案加入專案。
2.輸入git add test,並在次輸入git status。
# On branch master
# Changes to be committed:
# (use "git reset HEAD
#
# new file: test
#
Changes to be committed狀態則代表了此檔案已經加入專案了,現在檔案改變的部分是儲存在Client端的暫存區,還需新增註解之後,方可使用git push指令,將檔案upload到server上。
3.輸入git commit -m "this file is test",將檔案註解起來,並執行git status看現在檔案之狀態。
將會看到以下畫面
# On branch master
# Your branch is ahead of 'origin/master' by 1 commit.
#
nothing to commit (working directory clean)
說明了 你已經註解了檔案,並指出跟原始檔差了一個註解。
4.執行git push將test檔案上傳至server,並且執行git status。
# On branch master
nothing to commit (working directory clean)
此時所顯示之結果,代表與server端同步。
至此,已經完成了新增檔案與上傳至server的動作。
修改與上傳檔案:
1.接下來,我們試著修改test檔案,新增一些內容,並執行git status,觀察test檔案狀態。
# On branch master
# Changed but not updated:
# (use "git add
# (use "git checkout --
#
# modified: test
#
no changes added to commit (use "git add" and/or "git commit -a")
出現了一個新狀態,Changed but not updated:很明白的指出test被修改過,但是尚未updated,在此的updated所指的試client端的佔存區,並非指server。
2.執行git add test,並一樣輸入git status,觀察test檔案狀態。
# On branch master
# Changes to be committed:
# (use "git reset HEAD
#
# modified: test
#
3.輸入git commit -m "test modified",並輸入git status。
# On branch master
# Your branch is ahead of 'origin/master' by 1 commit.
#
nothing to commit (working directory clean)
看到跟server之最新版本相差一個註解。
4.最後已git push上傳至server,至此完成修改檔案與上傳至server之動作。
Read more...