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