關于
git add
和git commit
還有一些有點不太清楚的地方,這里寫一篇文章好好理一理
git add
:添加到暫存區
git add
實際上是把工作區中的內容存入“暫存區”
通俗來講就是告訴Git:“這些文件我準備好commit了”
git add file.txt # 添加單個文件
git add . # 添加當前目錄下所有有變動的文件
git add -A # 添加所有變化(包括刪除)
關鍵
git add
并不會真正的“保存修改”,只是把想要提交的文件標記出來
git commit
:提交到本地倉庫
git commit
就是把暫存區的內容真正的提交到本地倉庫的歷史中,并且生成一個commit的快照,也就是我們可以在git log
中看到的 commit 記錄
如圖:
通俗來講就是**“真正地記錄一次歷史”**
關鍵
只有執行了git commit
之后,這些改動才變成了真正的 Git 歷史的一部分
二者類比
操作 | 用寫文章類比 |
---|---|
git add | 把寫好的內容放進打印隊列中 |
git commit | 按下打印鍵,把內容打印出來 |
一般的操作流程
# 對文件做修改....
git status
git add <文件名>
git commit -m "change something"
我們在協作過程中是先git add
,將內容放入暫存區之后才git commit
提交暫存區中的內容,沒有通過git add
加入暫存區的內容不會被我們 commit 到歷史記錄中
commit之后
在執行
git commit -m "some change"
之后
Git 會將暫存區中所有內容寫入 Git 歷史,即提交一個新的 commit
然后暫存區會變成與當前commit相同的狀態,也就是暫存區中不再有需要commit的內容了,再運行git status
會顯示:
nothing to commit, working tree clean
所以git commit
之后暫存區會被“清空”,變成與最新提交一致的狀態。
而沒有被add
的修改,不會與 commit
產生關聯