【发布时间】:2014-05-03 15:26:43
【问题描述】:
git add . 和git add --all . 之间有什么区别我读了手册但我还是不明白。请在您的回答中包括.gitignore 文件是如何受到影响的:即--all 是否假装没有忽略文件?
【问题讨论】:
git add . 和git add --all . 之间有什么区别我读了手册但我还是不明白。请在您的回答中包括.gitignore 文件是如何受到影响的:即--all 是否假装没有忽略文件?
【问题讨论】:
--all 的另一个名称是--no-ignore-removal,在我看来更清晰。从这个替代名称中,它的作用可能立即显而易见:如果任何文件在工作树中被删除,它也会在索引中被删除。
创建了一个新的 repo,并添加了一个文件,但没有提交,状态如下:
$ 混帐状态 在分支主 初始提交 要提交的更改: (使用“git rm --cached ...”取消暂存) 新文件:文件现在,当文件被删除并且git add 在没有--all 的情况下运行时会发生以下情况:
事实上,git add -A 也会从索引中删除它:
您在问题中提到了 gitignore,但 --all 与此无关。添加忽略文件的选项是--force (-f)。
【讨论】:
git add --all . 将在 github 上删除我在本地仓库中删除的内容?我理解那部分吗?
git add --all . 将删除索引中的文件,如果它们已在您的工作树中被删除。随后的git commit 将创建一个本地提交,其中包含这些文件的删除。只有当您将提交推送到 Github 时,您才会看到那里的任何更改。