mac上的svn命令
Mac 终端添加代码到SVN
从SVN拉取代码步骤:
1.cd /Users/指定路径(本地路径)
2.svn checkout https://xxx.xxx.xx/svn/project(服务器路径)
提交代码
1.cd /Users/指定路径(更改过代码的本地位置)
2.svn commit -m “提交日志”
添加
添加所有新文件
svn add * --force
添加指定新文件
svn add x'x/xxx(新加文件的地址)
删除
删除所有新文件
svn delete * --force
删除指定新文件
svn delete xx/xxx(要删除的文件的地址)
查看本地文件的更改
svn st
创建纳入版本控制下的新目录
svn mkdir 目录名
svn mkdir -m "新增目录备注文本" http://目录全路径
例子:
svn mkdir newdir
svn mkdir -m "Making a new dir." http://192.168.0.3/test/newdir
注:添加完子目录后,一定要回到根目录更新一下,不然在该目录下提交文件会提示“提交失败”
svn update
有冲突文件先svn cleanup
A:add,新增
C:conflict,冲突
D:delete,删除
M:modify,本地已经修改
G:modify and merGed,本地文件修改并且和服务器的进行合并
U:update,从服务器更新
R:replace,从服务器替换
I:ignored,忽略
其中p 表示延后解决,这样会产生4个文件(xx.txt xx.txt.mine xx.txt.r10 xx.txt.r11)
df 控制台显示冲突信息,和使用diff命令一样
e 直接用系统默认的Editor修改冲突
mc 使用自己的文件,然后使用 svn resolved xx 告诉仓库我已经解决冲突,可以随后提交
tc 使用仓库中文件,将本地文件同步更新
注意:此时本地工作拷贝虽然版本和仓库的版本同步,但是修改的文件内容却可以不一致,因为本地文件经过人手工修改。最后执行了提交语句,这样就上传到了代码库中,并将版本号增加一。
svn命令预览版本下的文件和目录结构
1 svn list path
2 显示path目录下的所有属于版本库的文件和目录
3 简写:svn ls
更新到某个版本
1 svn update -r m path
2 例如:
3 svn update如果后面没有目录,默认将当前目录以及子目录下的所有文件都更新到最新版本。
4 svn update -r 200 test.php(将版本库中的文件test.php还原到版本200)
5 svn update test.php(更新,于版本库同步。如果在提交的时候提示过期的话,是因为冲突,需要先update,修改文件,然后清除svn resolved,最后再提交commit)
6 简写:svn up
查看文件或者目录状态
1 1)svn status path(目录下的文件和子目录的状态,正常状态不显示)
2 【?:不在svn的控制中;M:内容被修改;C:发生冲突;A:预定加入到版本库;K:被锁定】
3 2)svn status -v path(显示文件和子目录状态)
4 第一列保持相同,第二列显示工作版本号,第三和第四列显示最后一次修改的版本号和修改人。
5 注:svn status、svn diff和 svn revert这三条命令在没有网络的情况下也可以执行的,原因是svn在本地的.svn中保留了本地版本的原始拷贝。
6 简写:svn st
删除文件
1 svn delete path -m “delete test fle“
2 例如:svn delete svn://192.168.x.x/xx/xx -m “delete test file”
3 或者直接svn delete test.php 然后再svn ci -m ‘delete test file‘,推荐使用这种
4 简写:svn (del, remove, rm)
查看日志
svn log path
例如:svn log test.php 显示这个文件的所有修改记录,及其版本号的变化
查看文件详细信息
1 svn info path
2 例如:svn info test.php
比较差异
1 svn diff path(将修改的文件与基础版本比较)
2 例如:svn diff test.php
3 svn diff -r m:n path(对版本m和版本n比较差异)
4 例如:svn diff -r 200:201 test.php
5 简写:svn di
将两个版本之间的差异合并到当前文件
1 svn merge -r m:n path
2 例如:svn merge -r 200:205 test.php(将版本200与205之间的差异合并到当前文件,但是一般都会产生冲突,需要处理一下)
恢复本地修改
1 svn revert: 恢复原始未改变的工作副本文件 (恢复大部份的本地修改)。revert:
2 用法: revert PATH…
3 注意: 本子命令不会存取网络,并且会解除冲突的状况。但是它不会恢复
4 被删除的目录
解决冲突
1 svn resolved: 移除工作副本的目录或文件的“冲突”状态。
2 用法: resolved PATH…
3 注意: 本子命令不会依语法来解决冲突或是移除冲突标记;它只是移除冲突的
4 相关文件,然后让 PATH 可以再次提交。
svn 本地文件导入svn
svn import /Users/xx/workProject/giant_trip https://192.168.xx.xx/svn/xx/trunk/giant_trip/giant_trip_client/giant_trip_client_view_pc/ -m 'start'