首先先要保证代码是最新代码,且验证通过!
1. 使用svn st | grep “^M”命令查看当前修改的文件,将其中不属于提交范围的文件恢复。
恢复命令为:单个文件svn revert FileName
文件夹svn revert –r Directory
2. 使用svn st | grep “^\?”命令查看当前新增的文件,将其中需要提交的文件添加到svn版本控制。命令为:svn add ******此命令既支持文件也支持文件夹。
3. 使用svn st | grep “^\!”命令查看当前删除的文件,将其中需要提交的文件添加到svn版本控制。命令为:svn del ******此命令既支持文件也支持文件夹。
4. 使用svn st | grep “^A”命令查看当前纳入svn版本控制的新增文件,是否在提交范围内,将不需要提交的文件恢复,命令同1.中。
5. 使用svn st | grep “^D”命令查看当前纳入svn版本控制的删除文件,是否在提交范围内,将不需要提交的文件恢复,命令同1.中。
6. 最后使用svn st命令查看所有文件变更,全部确认OK后,上传。
命令为:svn ci –m "[log]"
补充命令:有时也很有用
1. svn st | grep ^[^\?]”命令是查看当前纳入svn版本控制的除去新增的全部文件。
2. svn st | grep ".xxx$" | xargs rm -f 将所有以.xxx结尾的文件删除掉
补充如下:
1.svn是如何工作的
我想,要做好一件事情,必须要知道它的内幕.svn也一样.
某些新接触Svn的对Svn工作原理不太清楚,常导致后悔莫及的错误,有时虽然做对了却也是知其然,这里我简单说说我个人的理解,供大家参考,老手请绕行.
svn是一个版本控制的软件,它通过记录有本地版本的信息的文件进行工作,这些本地版本信息有如某文件是否比服务器上的新等等.这些信息文件驻留在一个特殊的文件夹中,文件夹名字就是大家所熟知的".svn"或"_svn",在linux下用ll -a可以查看到这个文件夹的存在.
这个移动的数据库也是本地和服务器进行沟通的桥梁,这意味着,你要想提交或更新代码需要让这个随军的数据库知晓,认识到这一点很重要.
举两个例子
例1.你在工程下新增了一个文件code.cpp,其实服务器上并没有这个文件,本地随军svn数据库也不知道有这个文件,专业一点讲是"未纳入版本控制",所以你无法提交,只有用了svn add code.cpp 将code.cpp加入版本数据备案,在提交时本地svn数据在会向服务器申请空间,将代码提上去.
例2.你感觉有个文件rubbish.cpp是多余的于是你在windows/linux操作系统的文件系统中删除了它.对于你来说是没有问题的,因为你知道这个文件没有用.但对于svn系统来说,却有很大的问题,因为本地的svn数据库仍然以为这个rubbish.cpp是存在的,这就比较麻烦.标准和作法是一开始就用svn del rubbish.cpp将该文件删除(有两层含义:①在磁盘上删除②在svn系统中删除).这样在svn
ci时就能将这个变化提交到服务器上了。