git版本管理系列(三)git裏面的幾個概念,我按自己的理解簡單的進行下區分
工作區:就是我們的項目文件夾,在裏面進行的各種文件增加刪減的地方
(這就是我們的工作區)
版本庫:我們初始化git的時候,會創建一個隱藏目錄.git,這個就是我們的版本庫,不屬於工作區
git的版本庫裏存了很多東西,其中最重要的就是稱爲stage(或者叫index)的暫存區,還有git爲我們自動創建的第一個分支master
,以及指向master
的一個指針叫HEAD
前面我們把文件往Git版本庫裏添加的時候,是分兩步
第一步是用git add
把文件添加進去,實際上就是把文件修改添加到版本庫的暫存區;
第二步是用git commit
提交更改,實際上就是把暫存區的所有內容提交到當前分支(master)。
接下來,我們再次實驗下這個過程,新建了一個文件,並寫入內容
nelsen-mac:learngit mac$ echo 'this is a new file' > file.txt
使用git查看狀態
nelsen-mac:learngit mac$ 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.md //
readme.txt
被修改了
Untracked files:
(use "git add <file>..." to include in what will be committed) //而file.txt還從來沒有被添加過,它的狀態是
Untracked
。
file.txt
no changes added to commit (use "git add" and/or "git commit -a"
我們再把修改和新增加入到版本庫的緩衝區
nelsen-mac:learngit mac$ git add readme.md
nelsen-mac:learngit mac$ git add file.txt
nelsen-mac:learngit mac$ git status
On branch master
Changes to be committed:
(use "git reset HEAD <file>..." to unstage)
new file: file.txt
modified: readme.md
現在查看版本庫的狀態
git add
命令實際上就是把要提交的所有修改放到暫存區(Stage),然後,執行git commit
就可以一次性把暫存區的所有修改提交到分支。
查看當前版本庫的狀態,所有的修改都已經提交到暫存區