Git add 子命令

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

 

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


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


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

 

五、git add .

git add . 表示把修改的文件添加到索引庫。


六、git add -i
git add -i 命令查看中被所有修改過或已刪除文件但沒有提交的文件,
並通過其revert子命令可以查看中所有untracted的文件,同時進入一個子命令系統。
比如:
 git add -i
           staged     unstaged path
  1:        +0/-0      nothing branch/t.txt
  2:        +0/-0      nothing branch/t2.txt
  3:    unchanged        +1/-0 readme.txt

*** Commands ***
  1: [s]tatus     2: [u]pdate     3: [r]evert     4: [a]dd untracked
  5: [p]atch      6: [d]iff       7: [q]uit       8: [h]elp
What now>
這裏的t.txt和t2.txt表示已經被執行了git add,待提交。即已經添加到索引庫中。
readme.txt表示已經處於tracked下,它被修改了,但是還沒有被執行了git add。即還沒添加到索引庫中。


6.1、revert子命令
可以通過git add -i的revert子命令(3: [r]evert)把已經添加到索引庫中的文件從索引庫中剔除。
(3: [r]evert)表示通過3或r或revert加回車執行該命令。執行該命令後,git會例出索引庫中的文件列表.
然後通過數字來選擇。輸入"1"表示git會例出索引庫中的文件列表中的第1個文件。
"1-15"表示git會例出索引庫中的文件列表中的第1個文件到第15個文件.回車將執行。
如果我們不輸入任何東西,直接回車,將結束revert子命令,返回git add -i的主命令行。

 

6.2、update子命令
可以通過update子命令(2: [u]pdate)把已經tracked的文件添加到索引庫中。其操作和revert子命令類似。


6.3、add untracked子命令
通過add untracked子命令(4: [a]dd untracked)可以把還沒被git管理的文件添加到索引庫中。其操作和revert子命令類似。


6.4、diff子命令
可以通過diff子命令(6: [d]iff)可以比較索引庫中文件和原版本的差異。其操作和revert子命令類似。


6.5、status子命令
status子命令(1: [s]tatus)功能上和git add -i相似


6.6、quit子命令
quit子命令(7: [q]uit)用於退出git add -i命令系統


七、幫助
我們可以通過git add -h命令來看git add命令的幫助文檔。
 git add -h
usage: git add [options] [--] ...

    -n, --dry-run         dry run
    -v, --verbose         be verbose

     -i, --interactive     interactive picking
    -p, --patch           select hunks interactively
    -e, --edit            edit current diff and apply
    -f, --force           allow adding otherwise ignored files
    -u, --update          update tracked files
    -N, --intent-to-add   record only the fact that the path will be added later
    -A, --all             add changes from all tracked and untracked files
    --refresh             don't add, only refresh the index
    --ignore-errors       just skip files which cannot be added because of errors
    --ignore-missing      check if - even missing - files are ignored in dry run

 

 

 

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