git add [--all|-A]
命令彷佛與git add .
相同git add .
。 這個對嗎? 若是沒有,它們有何不一樣? git
在Git 2.0中, git add -A
是默認值: git add .
等於git add -A .
。 github
git add <path>
如今與「git add -A <path>
」相同,所以「git add dir/
」將注意到您從目錄中刪除的路徑並記錄該刪除。
在舊版本的Git中,「git add <path>
」用於忽略刪除。 ide若是您確實願意,能夠說「
git add --ignore-removal <path>
」僅在<path>
添加添加或修改的路徑。 學習
git add
就像git add :/
( 從頂部git repo文件夾添加全部內容 )。
請注意,git 2.7(2015年11月)將容許您添加一個名爲「 :
」的文件夾!
參見Junio C gitster
( gitster
) 提交的29abb33 (2015年10月25日) 。 ui
請注意,在談論git add .
時, 從git 2.0開始(2014年第一季度或第二季度) git add .
(工做樹中的當前路徑),您必須使用' .
在其餘git add
命令。 spa
這意味着: 命令行
git add -A .
等效於git add .; git add -u .
code
(請注意git add -A
和git add -u
的額外' .
') 遞歸
由於git add -A
或git add -u
會在整個工做樹上運行(僅從git 2.0開始),而不只僅是在當前路徑上運行。 索引
這些命令將在Git 2.0中的整個樹上運行,以與「
git commit -a
」和其餘命令保持一致 。 由於沒有機制可使「git add -u
」表現得像「git add -u .
」,因此對於那些習慣於「git add -u
」(無pathspec)的人來講,僅更新路徑索引很是重要在當前子目錄中開始訓練他們的手指,使其在Git 2.0出現以前明確表示「git add -u .
」。當這些命令在沒有路徑規範的狀況下運行時,以及在當前目錄以外進行本地更改時,都會發出警告 ,由於在這種狀況下,Git 2.0中的行爲將不一樣於今天的版本。
一個更簡化的快速答案:
git add -A
git add .
git add -u
這是用於快速理解的表:
Git版本1.x :
Git版本2.x :
長格式標誌:
git add -A
等同於git add --all
git add -u
等效於git add --update
進一步閱讀:
-A
如今是默認值 --ignore-removal
舊行爲 git add -u
和git add -A
在整個樹上運行 所以對於git 2,答案是:
git add .
和git add -A .
在當前目錄中添加新的/修改的/刪除的文件 git add --ignore-removal .
在當前目錄中添加新文件/修改過的文件 git add -u .
在當前目錄中添加修改/刪除的文件 最後,我想我明白了,很是感謝你們。 我但願這能夠增長一些清晰度。
!The syntax is git add <limiters> <pathspec> ! Aka git add (nil/-u/-A) (nil/./pathspec)
限制符能夠是-u或-A或nil。
Pathspec能夠是文件路徑或點「。」。 指示當前目錄。
有關git如何「添加」的重要背景知識。
如今,有了這些知識,咱們能夠應用上面的答案。
限制器以下。
pathspec以下。
git add -A .
git add -u .
總之,個人政策是