Svn 为什么我需要显式地添加文件(而不仅仅是提交文件)?

Svn 为什么我需要显式地添加文件(而不仅仅是提交文件)?,svn,add,commit,Svn,Add,Commit,为什么我需要显式地向SVN添加一个文件,然后提交它?如果有人提交了一个尚未添加到SVN的文件,那么他们想将其添加到SVN,这不是很明显吗?明确的add步骤有什么好处 明确添加步骤的好处是什么 您可以使用svn add命令逐个添加多个文件,然后通过一个命令svn commit从工作副本的根文件夹提交所有文件。这有时可能很方便。但是如果我只是从根目录执行一个commit,不是更容易吗?为什么我需要添加文件?commit不是意味着我想添加它们吗?不,不是。工作副本通常包含各种您不希望签入的文件(中间对

为什么我需要显式地
向SVN添加一个文件,然后
提交它?如果有人提交了一个尚未添加到SVN的文件,那么他们想将其添加到SVN,这不是很明显吗?明确的
add
步骤有什么好处

明确添加步骤的好处是什么


您可以使用
svn add
命令逐个添加多个文件,然后通过一个命令
svn commit
从工作副本的根文件夹提交所有文件。这有时可能很方便。

但是如果我只是从根目录执行一个
commit
,不是更容易吗?为什么我需要添加文件?
commit
不是意味着我想添加它们吗?不,不是。工作副本通常包含各种您不希望签入的文件(中间对象文件、编译的二进制文件等)。能够提交对跟踪文件的所有更改而不自动签入这些不需要的文件,这一点很重要。@DavidGrinberg您可能对8个不同的文件进行了修改,但其中只有4个文件已准备好提交。。。例如,如果您正在开发一项新功能,但它尚未完成,但您被转移到另一个文件中修复了一个关键的错误…@DavidGrinberg,那么您将不得不像这样提交新文件:
svn commit mably_long_files_list
。这可能并不比仅仅
svn commit
@AndrewMedico简单,但这些文件通常会被填充到已知的目录中。忽略这些目录并自动添加其他所有内容不是更容易吗?因此,如果我使用一个编辑器来创建.bak文件,那么应该自动添加并提交这些文件?或者你强迫他们添加忽略?我想他是在问为什么你必须使用
svn add foo.c;svn commit foo.c
而不仅仅是
svn commit foo.c
。将文件名显式地放在commit命令中对我来说是个好问题。