git add 和git commit

git add

一、前言

git add命令主要用於把我們要提交的文件的信息添加到索引庫中。當我們使用git commit時,git將依據索引庫中的內容來進行文件的提交。

二、基本

git add <path>表示add to index only files created or modified and not those deleted
我通常是通過git add <path> 的形式把我們<path> 添加到索引庫中,<path>可以是文件也可以是目錄。
git不僅能判斷出<path>中,修改(不包括刪除)的文件,還能判斷出新添的文件,並把它們的信息添加到索引庫中。

三、git add -u

git add -u 表示 add to index only files modified or deleted and not those created
git add -u [<path>]:把<path>中所有tracked文件中被修改過或已刪除文件的信息添加到索引庫。它不會處理untracted的文件。省略<path>表示.,即當前目錄。

四、git add -A

git add -A:<path>表示把<path>中所有tracked文件中被修改過或已刪除文件和所有untracted的文件信息添加到索引庫。省略<path>表示.,即當前目錄。

五、git add -i

我們可以通過git add -i [<path>]命令查看<path>中所有被修改過或已刪除但沒有提交的文件。
並通過其revert子命令可以查看<path>中所有untracted的文件,同時進入一個子命令系統。

5.1、revert子命令

把已經添加到索引庫中的文件從索引庫中剔除。

5.2、update子命令

把已經tracked的文件添加到索引庫中。

5.3、add untracked子命令

通過add untracked子命令可以把還沒被git管理的文件添加到索引庫中。

5.4、diff子命令

可以通過diff子命令比較索引庫中文件和原版本的差異

5.5、status子命令

功能上和git add -i相似

5.6、quit子命令

用於退出git add -i命令系統

六、幫助

我們可以通過git add -h命令來看git add命令的幫助文檔。

git commit

一、文件狀態

一般倉庫中的文件可能存在這三種狀態:
1) Untracked files->文件未被跟蹤
2)Changes to be committed->文件已暫存,這是下次提交的內容
3)Changes but not updated->文件被修改,但並沒有添加到暫存區。如果commit時沒有帶 -a選項,這個狀態下的文件不會被提交。

二、提交

git 提交的命令爲:git commit

2.1、 git commit與git commit -a

git commit提交的是暫存區裏面的內容,也就是Changes to be committed中的文件。

git commit -a 除了將暫存區裏的文件提交外,還提交Changes but not updated中的文件。

2.2、添加提交信息

如果直接運行git commit (-a)則會默認使用vi添加描述。也可以使用git config –global core.editor命令更改爲你喜歡的編輯器。還有一個方法就是使用 -m 選項直接添加提交信息。

$git commit -a -m “commit info”

三、修改/取消

有時候我們會發現有幾個文件漏了提交或者想修改一下提交信息,又或者忘記使用-a選項導致一些文件沒有被提交,我們希望對上一次提交進行修改,或者說取消上一次提交,這時候我們需要使用 –amend選項。

$git commit --amend

可以對上一次提交進行修改。

又或者我們發現在提交時忘記使用-a選項,導致Changes but not updated中的內容沒有被提交,我們可以使用:

$git commit --amend -a
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章