本文字档正在编写中,内容可能会发生很大变化,可能无法准确地描述 Apache™ Subversion® 软件的任何已发布版本。将此页面加入书签或以其他方式推荐给其他人可能不是一个明智的做法。请访问 http://svnbooks.subversion.org.cn/ 以获取此书的稳定版本。

名称

svn commit (ci) — 将工作副本中的更改发送到仓库。

概要

svn commit [PATH...]

描述

将工作副本中的更改发送到仓库。如果您没有使用 --file (-F) 或 --message (-m) 选项提供提交消息,svn 将启动您的编辑器供您编写提交消息。请参见 “通用配置”部分 中的 editor-cmd 列表条目。

svn commit 将发送它找到的任何锁定令牌,并将释放对所有提交的 PATH(递归地)的锁定,除非传递了 --no-unlock

[Tip] 提示

如果您开始提交并且 Subversion 启动您的编辑器来撰写提交消息,您仍然可以中止提交而不会提交您的更改。如果您要取消提交,只需退出您的编辑器而不保存您的提交消息,Subversion 将提示您中止提交、继续而不添加消息或再次编辑消息。

选项

示例

使用命令行上的提交消息和当前目录的隐式目标(.)提交对文件的简单修改

$ svn commit -m "added howto section."
Sending        a
Transmitting file data .
Committed revision 3.

使用名为 msg 的文件中的提交消息,提交对文件 foo.c(在命令行上显式指定)的修改

$ svn commit -F msg foo.c
Sending        foo.c
Transmitting file data .
Committed revision 5.

如果您要使用版本控制下的文件作为提交消息,并使用 --file (-F),则需要传递 --force-log 选项

$ svn commit -F file_under_vc.txt foo.c
svn: E205004: Log message file is a versioned file; use '--force-log' to override

$ svn commit --force-log -F 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.
TortoiseSVN 官方中文版 1.14.7 发布