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