一个“和”git add“。
命令git add [--all|-A]
看起来与git add .
相同git add .
。 它是否正确? 如果不是,他们有什么不同?
对于Git 2.x版本 ,请参阅下面的答案。
概要:
git add -A
所有阶段
git add .
阶段新的和修改的, 没有删除
git add -u
阶段修改和删除, 没有新的
详情:
git add -A
相当于git add .; git add -u
git add .; git add -u
。
关于git add .
的重要一点git add .
是它看着工作树,并将所有这些路径添加到阶段性更改中,如果它们被更改或者是新的并且不被忽略,它就不会执行任何'rm'操作。
git add -u
查看所有已经跟踪的文件,并且如果这些文件不同或已被删除,则对这些文件的更改进行分级。 它不会添加任何新文件,它只会更改已经跟踪的文件。
git add -A
是做这两件事的方便捷径。
你可以用这样的东西来测试差异(注意,对于Git版本2.x,你的输出为git add .
git status
将会不同):
git init
echo Change me > change-me
echo Delete me > delete-me
git add change-me delete-me
git commit -m initial
echo OK >> change-me
rm delete-me
echo Add me > add-me
git status
# Changed but not updated:
# modified: change-me
# deleted: delete-me
# Untracked files:
# add-me
git add .
git status
# Changes to be committed:
# new file: add-me
# modified: change-me
# Changed but not updated:
# deleted: delete-me
git reset
git add -u
git status
# Changes to be committed:
# modified: change-me
# deleted: delete-me
# Untracked files:
# add-me
git reset
git add -A
git status
# Changes to be committed:
# new file: add-me
# modified: change-me
# deleted: delete-me
下面是快速了解的表格:
Git版本1.x :
Git版本2.x :
长形标志:
git add -A
相当于git add --all
git add -u
相当于git add --update
进一步阅读:
使用Git 2.0, git add -A
是默认的: git add .
等于git add -A .
。
git add <path>
现在与“ git add -A <path>
”相同,因此“ git add dir/
”会注意从目录中删除的路径并记录删除。
在旧版本的Git中,“ git add <path>
”用于忽略删除。
你可以说“ git add --ignore-removal <path>
”中只添加添加或修改路径<path>
,如果你真的想。
git add
就像git add :/
(添加顶级git repo文件夹中的所有内容)。
请注意,git 2.7(2015年11月)将允许您添加名为“ :
”的文件夹!
见Junio C gitster
( gitster
)的commit 29abb33(2015年10月25日)。
请注意,在讨论git add .
时,首先启动git 2.0(2014年第一季度或第二季度) git add .
(工作树中的当前路径),则必须使用' .
'在其他git add
命令中。
这意味着:
“ git add -A .
”相当于“ git add .; git add -u .
”
(注意额外的' .
'为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 .
”。
如果这些命令在没有pathspec的情况下运行,并且在当前目录之外进行本地更改时会发出警告 ,因为在这种情况下,Git 2.0中的行为将与当前的版本不同。
链接地址: http://www.djcxy.com/p/115.html上一篇: A" and "git add ."