1. 程式人生 > >第四節:工作區和暫存區

第四節:工作區和暫存區

學習目的

  1. 工作區: 在電腦裡能看到的目錄,比如我的GIT資料夾就是一個工作區;
  2. 暫存區: 檢視倉庫當前狀態;
  3. 分支: Git為我們自動建立的第一個分支master.

工作區

在電腦裡能看到的目錄,比如我的learngit資料夾就是一個工作區。

版本庫(Repository)

工作區有一個隱藏目錄.git,這個不算工作區,而是Git的版本庫。

暫存區

Git的版本庫裡存了很多東西,其中最重要的就是稱為stage(或者叫index)的暫存區。

同時Git為我們自動建立的第一個分支master,以及指向master的一個指標叫HEAD。

git工作區、暫存區、分支示意圖

  1. git add : 將檔案新增到進去,實際就是將檔案修改新增到暫存區;
  2. git commit : 提交修改檔案,實際就是將暫存區的檔案提交到當前分支。

實踐出真知

  1. 修改readme.txt
Git is a version control system.
Git is free software.
Git is a distributed version control system.
Git is free software.
新增一行測試工作區、暫存區、分支。
  1. git status 檢視修改
$ 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")

Changes not staged for commit:工作區的檔案修改了未進行提交。

  1. 新增暫存區(git add)檢視狀態(git status)
$ git add readme.txt
$ git status
On branch master
Changes to be committed:
  (use "git reset HEAD <file>..." to unstage)

        modified:   readme.txt

Changes to be committed: 更改將被提交

git add的實際操作示意圖

所以,git add命令實際上就是把要提交的所有修改放到暫存區(Stage),然後,執行git commit就可以一次性把暫存區的所有修改提交到分支。

  1. 提交檔案(git commit)到分支(master)
$ git commit -m "提交工作區、暫存區、分支測試"
[master 500dcea] 提交工作區、暫存區、分支測試
 1 file changed, 2 insertions(+), 1 deletion(-)

如果提交後沒對工作區進行修改,那麼工作區就是“乾淨”的:

$ git status
On branch master
nothing to commit, working tree clean

同時看看暫存區的情況:

git add的實際操作示意圖

小結

  1. 工作區: 在電腦裡能看到的目錄,比如我的GIT資料夾就是一個工作區;
  2. 暫存區: 檢視倉庫當前狀態;
  3. 分支: Git為我們自動建立的第一個分支master.
  4. 如果修改檔案,先修改的是工作區,然後用git add新增到暫存區,最後用git commit提交修改檔案到當前分支。

其他

QQ交流群: 264303060

QQ交流群

遊戲列表