需要關(guān)注git實(shí)現(xiàn)機(jī)制中的一快就是git的4個(gè)區(qū)域:工作區(qū)域抄腔、暫存區(qū)瓢湃、本地倉(cāng)庫(kù)赫蛇、遠(yuǎn)程倉(cāng)庫(kù)绵患。
工作區(qū)
工作區(qū)就是我們當(dāng)前項(xiàng)目目錄內(nèi)悟耘,所有修改都是在工作區(qū)內(nèi)進(jìn)行。
暫存區(qū)
暫存區(qū)(stage)也叫索引區(qū)(index)暂幼,本地文件修改之后筏勒,add操作會(huì)將修改添加大暫存區(qū)旺嬉,那么本地和暫存區(qū)修改保持一致管行。
如圖1.4所示邪媳,stage內(nèi)是工作區(qū)提交的修改荡陷。
本地倉(cāng)庫(kù)
通過(guò)clone或者intit目錄之后,本地倉(cāng)庫(kù)便建立了迅涮,我們所以的修改废赞,都要先提交到本地叮姑,是通過(guò)暫存區(qū)提交的(可以通過(guò)工作區(qū)直接提交到本地倉(cāng)庫(kù))唉地。
??如圖1.4所示传透,通過(guò)git commit 即可把stage區(qū)域的修改提交到本地倉(cāng)庫(kù)。
每一次提交都會(huì)形成一個(gè)版本號(hào)旷祸,版本號(hào)是SHA-1編碼的編號(hào)耕拷。
遠(yuǎn)程倉(cāng)庫(kù)
遠(yuǎn)程倉(cāng)庫(kù)是放在遠(yuǎn)程服務(wù)器上,雖然說(shuō)git是一個(gè)分布式版本控制系統(tǒng)骚烧,但是一般我們worker都會(huì)使用同一個(gè)遠(yuǎn)程倉(cāng)庫(kù),這點(diǎn)感覺(jué)和svn并沒(méi)有太大差別闰围,只是remote 掛掉之后赃绊,我們每個(gè)worker可以互相用對(duì)方的repo(修改repo地址即可)羡榴。
??通過(guò)clone可以把遠(yuǎn)程倉(cāng)庫(kù)clone下拉,push操作將本地的倉(cāng)庫(kù)版本提交到遠(yuǎn)程倉(cāng)庫(kù)校仑。
本地遠(yuǎn)程分支和遠(yuǎn)程分支
如圖1.5所示忠售,git本地倉(cāng)庫(kù)其實(shí)還會(huì)分為本地分支、本地遠(yuǎn)程分支稻扬。git fetch拉下來(lái)的代碼會(huì)放到本地遠(yuǎn)程分支上而不是直接合并到本地分支。
可以通過(guò)git br查看本地遠(yuǎn)程分支羊瘩。
git pull origin master = git fetch origin master + git merge origin/master
這個(gè)比較重要泰佳,一定要引起注意尘吗。