一、工作區(qū)、版本庫和暫存區(qū)的概念理解
工作區(qū):就是你在電腦里能看到的目錄,比如我的learngit文件夾就是一個工作區(qū)。
版本庫:工作區(qū)有一個隱藏目錄.git,這個不算工作區(qū),而是Git的版本庫。
暫存區(qū):Git的版本庫里存了很多東西,其中最重要的就是稱為stage(或者叫index)的暫存區(qū),還有Git為我們自動創(chuàng)建的第一個分支master,以及指向master的一個指針叫HEAD。
前面講了我們把文件往Git版本庫里添加的時候,是分兩步執(zhí)行的:
- 第一步是用git add把文件添加進去,實際上就是把文件修改添加到暫存區(qū);
- 第二步是用git commit提交更改,實際上就是把暫存區(qū)的所有內(nèi)容提交到當(dāng)前分支(本地版本庫)。
- 第三步是用git push上傳文件,實際上就是把當(dāng)前分支的內(nèi)容提交到git服務(wù)器(將本地版本庫的分支推送到遠(yuǎn)程服務(wù)器上對應(yīng)的分支)。
因為我們創(chuàng)建Git版本庫時,Git自動為我們創(chuàng)建了唯一一個master分支,所以,現(xiàn)在,git commit就是往master分支上提交更改。
可以簡單理解為,需要提交的文件修改通通放到暫存區(qū),然后,一次性提交暫存區(qū)的所有修改。
二、add、 stash 區(qū)別
- git add是針對新建文件
- git stash是針對被修改文件
- 執(zhí)行add命令時,可自動將文件提交到暫存區(qū)
- 執(zhí)行stash命令時,若該文件是新建文件卻沒有add,則stash無效,若該文件不是新建文件,則stash可自動將文件提交到暫存區(qū)
三、diff、reset
git diff
git reset
相關(guān)參考:
使用git和github管理自己的項目---基礎(chǔ)操作學(xué)習(xí)
廖雪峰Git教程(推薦!)
git開發(fā)經(jīng)驗