### 名称 svn commit ― 将修改从工作拷贝发送到版本库。 ### 概要 ~~~ svn commit [PATH...] ~~~ ### 描述 将修改从工作拷贝发送到版本库。如果你没有使用`--file`或`--message`提供一个提交日志信息,**svn**会启动你的编辑器来编写一个提交信息,见[“config”一节]的`editor-cmd`小节。 ### 提示 如果你开始一个提交并且Subversion启动了你的编辑器来编辑提交信息,你仍可以退出而不会提交你的修改,如果你希望取消你的提交,只需要退出编辑器而不保存你的提交信息,Subversion会提示你是选择取消提交、空信息继续还是重新编辑信息。 ### 别名 ci(“check in”的缩写;不是“checkout”的缩写“co”。) ### 变化 工作拷贝,版本库 ### 是否访问版本库 是 ### 选项 ~~~ --message (-m) TEXT --file (-F) FILE --quiet (-q) --non-recursive (-N) --targets FILENAME --force-log --username USER --password PASS --no-auth-cache --non-interactive --encoding ENC --config-dir DIR ~~~ ### 例子 使用命令行提交一个包含日志信息的文件修改,当前目录(“`.`”)是没有说明的目标路径: ~~~ $ svn commit -m "added howto section." Sending a Transmitting file data . Committed revision 3. ~~~ 提交一个修改到`foo.c`(在命令行明确指明),并且`msg`文件中保存了提交信息: ~~~ $ svn commit -F msg foo.c Sending foo.c Transmitting file data . Committed revision 5. ~~~ 如果你希望使用在`--file`选项中使用在版本控制之下的文件作为参数,你需要使用`--force-log`选项: ~~~ $ svn commit --file file_under_vc.txt foo.c svn: The log message file is under version control svn: Log message file is a versioned file; use '--force-log' to override $ svn commit --force-log --file file_under_vc.txt foo.c Sending foo.c Transmitting file data . Committed revision 6. ~~~ 提交一个已经预定要删除的文件: ~~~ $ svn commit -m "removed file 'c'." Deleting c Committed revision 7. ~~~