工作區(working directory):就是在電腦裡能看到的目錄,如testcase資料夾就是乙個工作區。
版本庫(repository):工作區有乙個隱藏目錄.git
,是git的版本庫。
git的版本庫里存了很多東西,其中最重要的就是稱為stage(或者叫index)的暫存區,還有git為我們自動建立的第乙個分支master
,以及指向master
的乙個指標叫head
。
把檔案往git版本庫里新增的時候,是分兩步執行的:
第一步是用git add
把檔案新增進去,實際上就是把檔案修改新增到暫存區;
第二步是用git commit
提交更改,實際上就是把暫存區的所有內容提交到當前分支。
因為我們建立git版本庫時,git自動為我們建立了唯一乙個master
分支,所以,現在,git commit
就是往master
分支上提交更改。
可以簡單理解為,需要提交的檔案修改全部放到暫存區,然後,一次性提交暫存區的所有修改。
git is然後,在工作區新增乙個a distributed version control system.
git
isfree software distributed under the gpl.
git has a mutable index called stage.
license
文字檔案。
先用git status
檢視一下狀態:
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
untracked files:
(use
"git add ...
" to include in
what will be committed)
license.txt
no changes added to commit (use
"git add
"and/or
"git commit -a
")
readme.txt
被修改了,而license
還從來沒有被新增過,所以它的狀態是untracked
。
現在,使用兩次命令git add
,把readme.txt
和license
都新增後,用git status
再進行檢視:
git status現在,暫存區的狀態就變成這樣了:on branch master
changes to be committed:
(use
"git reset head ...
"to unstage)
new file: license.txt
modified: readme.txt
所以,git add
命令實際上就是把要提交的所有修改放到暫存區(stage),然後,執行git commit
就可以一次性把暫存區的所有修改提交到分支。
git commit -m "提交後,如果沒有對工作區再做任何修改,那麼工作區就是「乾淨」的:add file license.txt and modified readme.txt[master 14c3a6a] add file license.txt and
modified readme.txt q
2 files changed, 3 insertions(+)
create mode 100644 license.txt
git status現在版本庫變成了這樣,暫存區就沒有任何內容了:on branch master
nothing to commit, working directory clean
Git 工作區和暫存區的概念
在文章底部我對工作區和暫存區做了最通俗的解釋,看完整篇文章你一定能理解git工作區和暫存區的概念 工作區 working directory 就是你在電腦裡能看到的目錄,比如我的tm資料夾就是乙個工作區 版本庫 repository 工作區有乙個隱藏目錄.git,這個不算工作區,而是git的版本庫。...
git工作區和暫存區
git和其他版本控制系統如svn的乙個不同之處就是有暫存區的概念。先來看名詞解釋。工作區 working directory 就是你在電腦裡能看到的目錄,比如我的learngit資料夾就是乙個工作區 版本庫 repository 工作區有乙個隱藏目錄.git,這個不算工作區,而是git的版本庫。gi...
Git 工作區和暫存區
git和其他版本控制系統如svn的乙個不同之處就是有暫存區的概念。暫存區 stage 是git非常重要的概念,弄明白了暫存區,就弄明白了git的很多操作到底幹了什麼。是你在電腦裡能看到的目錄,比如我的learngit資料夾就是乙個工作區 工作區有乙個隱藏目錄.git,這個不算工作區,而是git的版本...