我正在学习Git命令。
我对git add和git commit的理解是:git add '文件名' 会对项目(整个工作目录)进行快照并将其暂存。git commit将已暂存的快照保存到仓库中。
我也知道git与SVN等软件在保存文件方面有根本区别。而SVN会在单个文件中保存增量更改,git则保存整个工作目录的快照。如果一个文件没有发生变化,git的快照将包含对该文件的引用,指向之前的快照。
我有一个问题。如果git add对整个工作目录进行快照,为什么我们需要在命令中提供单个文件名?Git无论如何都会对整个项目进行快照。
我也知道git与SVN等软件在保存文件方面有根本区别。而SVN会在单个文件中保存增量更改,git则保存整个工作目录的快照。如果一个文件没有发生变化,git的快照将包含对该文件的引用,指向之前的快照。
我有一个问题。如果git add对整个工作目录进行快照,为什么我们需要在命令中提供单个文件名?Git无论如何都会对整个项目进行快照。
git add file [file ...]
仅添加指定的文件,而不是整个工作目录。但它允许您指定一个目录,这意味着“目录中的所有文件”; 如果您在工作树的顶部并指定“。”,那就相当于“工作树中的所有文件”。由于.gitignore
文件等原因,这里有一些例外情况,但这基本上涵盖了大部分情况。 - torekgit add -u
命令将所有以前跟踪的文件添加到暂存区。 - o11cgit add -A
。 - user3159253