SVN
不要问我为什么用SVN,不要问。。。不要问。
删除已经加入版本控制的文件
svn delete xxx.java svn ci -m '删除不需要提交的文件'
Android studio mac如果升级了系统,找不到之前安装的svn环境了。需要手动配置,先找到svn的路径,设置到as的版本控制的svn目录
which svn
保留文件夹(忽略里面内容)
若想创建了一个文件夹,并且把它加入版本控制,但忽略文件夹中的所有文件的内容:
$ svn mkdir spool
$ svn propset svn:ignore '*' spool
$ svn ci -m 'Adding "spool" and ignoring its contents.'
忽略文件夹
若想创建一个文件夹,但不加入版本控制,即忽略这个文件夹:
$ mkdir spool
$ svn propset svn:ignore 'spool' .
$ svn ci -m 'Ignoring a directory called "spool".'
忽略文件夹(已经加入控制)
若已经创建了文件夹,并加入了版本控制,现在想忽略这个文件夹,但要保持文件夹的内容
$ svn export spool spool-tmp
$ svn rm spool
$ svn ci -m 'Removing inadvertently added directory "spool".'
$ mv spool-tmp spool
$ svn propset svn:ignore 'spool' .
$ svn ci -m 'Ignoring a directory called "spool".'
上面命令可以忽略文件及了
build
bin
gen
proguard
.classpath
.project
local.properties
Thumbs.db
*.apk
*.ap_
*.class
*.dex
创建一个忽略文件 .svnignore
svn propset svn:ignore -R -F .svnignore .
更新文件之后,需要命令配置一次,才生效
查看当前状态
svn status
修改代码,撤销修改
svn revert file
SVN_demo svn status
M app/src/main/res/layout/activity_main.xml
➜ SVN_demo
➜ SVN_demo
➜ SVN_demo svn revert app/src/main/res/layout/activity_main.xml
已恢复“app/src/main/res/layout/activity_main.xml”
回滚某个文件
先svn update,得到最新版本号,查到要回滚的版本号和当前最新的。使用merge
SVN_demo svn update
正在升级 '.':
版本 12。
➜ SVN_demo svn merge -r 12:11 a.txt
--- 正在反向合并 r12 到 “a.txt”:
U a.txt
--- 记录反向合并 r12 到“a.txt”的信息:
U a.txt
--- 正在从 'a.txt' 删除合并信息:
U a.txt
➜ SVN_demo
真实例子2:回滚一个具体的文件,使用绝对路径
SVN_demo svn merge -r 10:9 app/src/main/res/layout/activity_main.xml
--- 正在反向合并 r10 到 “app/src/main/res/layout/activity_main.xml”:
U app/src/main/res/layout/activity_main.xml
--- 记录反向合并 r10 到“app/src/main/res/layout/activity_main.xml”的信息:
U app/src/main/res/layout/activity_main.xml
--- 正在从 'app/src/main/res/layout/activity_main.xml' 删除合并信息:
U app/src/main/res/layout/activity_main.xml
➜ SVN_demo
文件夹从版本库中移除,并保留内容
// 这样可以把不小心加入版本控制的文件夹及内部子目录和文件移除
svn delete --keep-local hapoodsdk/build
忽略之后,需要提交
svn ci -m "ci(ignore): 忽略了xxx文件夹"