您不能忽略存储库中已经存在的文件。
重读第一句话。
忽略版本控制系统中的某些内容表示忽略版本控制系统中尚未存在的文件。例如,假设您有一个编译过程,它获取*.c
存储库中的文件并将它们编译成*.o
文件。这些*.o
文件只是编译过程的一部分,您当然不希望它们意外添加到您的存储库中。
如果您忽略*.o
文件,并且您svn status
在 Subversion 中执行了操作,Subversion 将不会报告这些文件。如果您执行了svn add *
,Subversion 不会将这些文件添加到您的存储库中。这就是版本控制系统中忽略的含义。
如果您修改了一个文件,并且您不想在提交时更改它,那么您有几个选择:
- 使用更改列表来组织您的文件。
- 列出要在
svn commit
命令行上提交的文件。
- 在提交之前还原您不想更改的文件。在我提交之前,我总是会
svn status
确保不会意外修改我不想更改的文件。
我不知道更改列表在 TortoiseSVN 中是如何工作的,但是您可以放置您不想提交的文件。您要忽略的文件放入changelist。问题是您不能对否定的更改列表进行操作。例如:
$ svn --cl ignore foo bar barfoo
$ svn status
M blat
M floob
--- Changelist 'ignore'
M foo
M bar
M barfoo
我不能说:
$svn!--cl foo 提交
并且只提交对 flob 和 blat 的更改(除非我也为这些文件创建了一个更改列表)。
相反,您将还原更改列表中的文件ignore,然后提交:
$ svn revert --cl ignore -R . #Reverts all files in the changelist
$ svn commit --keep-changelists #Commits all other files
请注意,该--keep-changelist
选项会将您放在更改列表中的文件保留在更改列表中,即使它们没有更改。这样,您可以在下一次提交之前再次恢复它们。