git-add[-all|-A]和git-add.之间有什么区别。?
当前回答
-A选项添加、修改和删除索引项以匹配工作树。
在Git 2中,-A选项现在是默认选项。
当。根据Git文档,添加了将更新范围限制为当前所在的目录
如果在使用-A选项时未指定<pathspec>,则会更新整个工作树中的所有文件(旧版本的Git用于限制对当前目录及其子目录的更新)。
我要补充的一点是,如果使用--interactive或-p模式,那么gitadd的行为就像使用了update(-u)标志一样,不会添加新文件。
其他回答
此答案仅适用于Git 1.x版本。有关Git 2.x版本,请参阅其他答案。
摘要:
gitadd-A阶段所有更改git添加。暂存新文件和修改,而不删除(在当前目录及其子目录上)。gitadd-u阶段修改和删除,无需新文件
详细信息:
git-add-A相当于git-add。;git-add-u。
关于gitadd的要点。它查看工作树,并将所有这些路径添加到已阶段的更改中,如果这些更改已更改或是新的且未被忽略,则不会阶段任何“rm”操作。
gitadd-u查看所有已跟踪的文件,如果这些文件不同或已被删除,则对这些文件进行更改。它不添加任何新文件,只对已跟踪的文件进行更改。
gitadd-A是实现这两个目的的便捷快捷方式。
您可以使用以下方式测试差异(注意,对于Git 2.x版本,您的Git-add.Git状态输出将不同):
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
-A选项添加、修改和删除索引项以匹配工作树。
在Git 2中,-A选项现在是默认选项。
当。根据Git文档,添加了将更新范围限制为当前所在的目录
如果在使用-A选项时未指定<pathspec>,则会更新整个工作树中的所有文件(旧版本的Git用于限制对当前目录及其子目录的更新)。
我要补充的一点是,如果使用--interactive或-p模式,那么gitadd的行为就像使用了update(-u)标志一样,不会添加新文件。
两个git add。gitadd-A将在更新版本的git中暂存所有新的、修改的和删除的文件。
不同之处在于,git add-A将文件存放在属于您工作的git存储库的“更高、当前和子目录”中。但做一个git加法。仅暂存当前目录及其后的子目录中的文件(而不是位于外部的文件,即更高的目录)。
下面是一个示例:
/my-repo
.git/
subfolder/
nested-file.txt
rootfile.txt
如果您当前的工作目录是/my repo,并且您执行rm rootfile.txt,然后是cd子文件夹,然后是git add。,则它将不暂存已删除的文件。但是,无论您从何处执行命令,执行git add-A肯定会进行此更改。
git添加。等于git add-A。仅将当前文件夹和子文件夹中的文件添加到索引中。
gitadd-A将工作树中所有文件夹的文件添加到索引中。
注:有关Git 2.0的信息(2014-05-28)。
根据Charles的指示,经过测试后,我提出的理解如下:
# For the next commit
$ git add . # Add only files created/modified to the index and not those deleted
$ git add -u # Add only files deleted/modified to the index and not those created
$ git add -A # Do both operations at once, add to all files to the index
这篇博客文章也可能有助于了解在什么情况下可以应用这些命令:从Git工作目录中删除已删除的文件。
这在2.0中不再适用。添加等于为同一路径添加-A,唯一的区别是树的其他路径中是否有新文件
推荐文章
- Bower: ENOGIT Git未安装或不在PATH中
- Bitbucket上的Git:总是要求密码,即使上传了我的公共SSH密钥
- Git别名-多个命令和参数
- 如何添加一个“打开git-bash这里…”上下文菜单到windows资源管理器?
- 是否可以在Git中只提取一个文件?
- 当我做“git diff”的时候,我怎么能得到一个并排的diff ?
- 在git中如何将提交移动到暂存区?
- 如何缩小。git文件夹
- 如何在本地删除分支?
- 找到包含特定提交的合并提交
- Windows上Git文件的权限
- 如何从一个枝头摘到另一个枝头
- 如何获得在两次Git提交之间更改的所有文件的列表?
- 什么是跟踪分支?
- 如何在不稳定的连接上完成一个大项目的git克隆?