一、工作區(qū)、版本庫(kù)和暫存區(qū)的概念理解
工作區(qū):就是你在電腦里能看到的目錄,比如我的learngit文件夾就是一個(gè)工作區(qū)。
版本庫(kù):工作區(qū)有一個(gè)隱藏目錄.git,這個(gè)不算工作區(qū),而是Git的版本庫(kù)。
暫存區(qū):Git的版本庫(kù)里存了很多東西,其中最重要的就是稱(chēng)為stage(或者叫index)的暫存區(qū),還有Git為我們自動(dòng)創(chuàng)建的第一個(gè)分支master,以及指向master的一個(gè)指針叫HEAD。
前面講了我們把文件往Git版本庫(kù)里添加的時(shí)候,是分兩步執(zhí)行的:
- 第一步是用git add把文件添加進(jìn)去,實(shí)際上就是把文件修改添加到暫存區(qū);
- 第二步是用git commit提交更改,實(shí)際上就是把暫存區(qū)的所有內(nèi)容提交到當(dāng)前分支(本地版本庫(kù))。
- 第三步是用git push上傳文件,實(shí)際上就是把當(dāng)前分支的內(nèi)容提交到git服務(wù)器(將本地版本庫(kù)的分支推送到遠(yuǎn)程服務(wù)器上對(duì)應(yīng)的分支)。
因?yàn)槲覀儎?chuàng)建Git版本庫(kù)時(shí),Git自動(dòng)為我們創(chuàng)建了唯一一個(gè)master分支,所以,現(xiàn)在,git commit就是往master分支上提交更改。
可以簡(jiǎn)單理解為,需要提交的文件修改通通放到暫存區(qū),然后,一次性提交暫存區(qū)的所有修改。
二、add、 stash 區(qū)別
- git add是針對(duì)新建文件
- git stash是針對(duì)被修改文件
- 執(zhí)行add命令時(shí),可自動(dòng)將文件提交到暫存區(qū)
- 執(zhí)行stash命令時(shí),若該文件是新建文件卻沒(méi)有add,則stash無(wú)效,若該文件不是新建文件,則stash可自動(dòng)將文件提交到暫存區(qū)

三、diff、reset

git diff

git reset
相關(guān)參考:
使用git和github管理自己的項(xiàng)目---基礎(chǔ)操作學(xué)習(xí)
廖雪峰Git教程(推薦?。?/a>
git開(kāi)發(fā)經(jīng)驗(yàn)