使用svn进行代码的提交有两种方法:一种是通过TortoiseSVN客户端界面进行提交,另一种是通过svn commit指令提交。
方法一:通过TortoiseSVN客户端界面提交代码
在需要提交代码的目录下右键,点击SVN Commit...
此时会进入SVN的Commit界面,在[Message]处填写需要备注的信息,在Changes made区域选中需要提交的文件,最后点击OK即可提交。提交后会弹出一个框提示是否提交成功。
提交完成后若想查看是否提交成功,可以在提交目录下右键 -> TortoisesSVN -> show log 查看代码提交记录,有提交记录即为提交成功。
方法二:通过svn commit path -m"Message"提交代码(path为需要提交的文件路径,Message为需要填写的备注信息)
我这里是通过XShell工具连接服务器后进行commit的。
首先cd 到需要提交代码的目录下,然后执行 svn status(查看本地文件和版本库里面的文件的区别)
从上图可以看出本地的MainActivity.java文件和main.xml文件相对于服务器中的版本是修改过的,而第一行的png图片在服务器中的版本是没有的,状态显示为?则为未加到版本控制中的意思。如果此时svn commit,main.xml和MainActivity.java文件会上传,而png图片则不会上传。
可是对于png图片我也是想添加进项目中的,这时候就需要执行svn add path1 path2(多个路径)
svn add path就是将path下的文件加入到本地的版本库中,此时再次执行svn status的话会看到刚才svn add的文件前面的标记不是?而是A了,表示已经成功把此文件添加到版本控制中。
最后一步是执行 svn commit path1 path2 -m"Message"
执行后会显示出结果,如上图,Adding就是已添加,Sending就是已替换文件。
在完成提交之后,就可以通过 svn log 来查看提交日志信息。
可以看到刚才提交的741版本已经显示出来了。
另:如果svn status后看到有的文件已经被自己修改,或者被自己手动纳入版本控制了,但是不想commit到服务器中的话可以使用svn revert(将本地文件恢复到服务器中的同名文件)
例子:
svn status查看状态 此时本地文件夹中有三个服务器中没有的文件
如果想把.project文件纳入svn版本控制,执行svn add .project,然后再svn status查看状态,.project已被纳入版本控制
但是如果不想把.project文件纳入版本控制了,那么可以执行 svn revert .project(回滚到服务器上最新的版本,如果需要整个文件夹回滚,则执行 svn revert -R path)
这样就可以恢复了,后面如果要提交的话再参考上面的方法一二进行操作。
svn add 相关指令
svn add path —— 把path路径下的文件/文件夹(里面的文件也包含)全部纳入版本控制
svn add folder --non-recursive —— 把文件夹folder纳入版本控制,但是folder文件夹里的文件不添加(non-revursive 不递归)
svn add * —— 把当前目录所以未添加到版本控制的文件全部添加进去 (如果有文件夹是non-revursive的则不添加该文件夹里的文件)
svm add * --force —— 把当前目录所以未添加到版本控制的文件全部添加进去(包括non-revursive的文件夹里的文件,包括和服务器中存在的相同的文件(将会覆盖))
svn add . --no-ignore --force —— 把当前目录下所以未添加的文件(包括.project文件等,不忽略任何文件)添加到版本控制中