SVN ignore 忽略文件及目录
SVN 忽略文件夹
1、若创建了一个文件夹,并且把它加入版本控制,但忽略文件夹中的所有文件的内容
$ svn mkdir cache
$ svn propset svn:ignore '*' cache
$ svn ci -m 'Adding "cache" and ignoring its contents.'
2、若想创建一个文件夹,但不把它加入版本控制,即忽略这个文件夹和里面的内容
$ mkdir cache
$ svn propset svn:ignore 'cache' . // 一定要记得最后有一个小点
property 'svn:ignore' set on '.'
$ svn ci -m 'Ignoring a directory called "cache".'
查看被忽略的文件夹:
$ svn st cache
I cache
3、若已经创建了文件夹,并已加入了版本控制,现在想忽略这个文件夹,但要保持文件夹的内容:
$ svn export cache cache-tmp
$ svn rm cache
$ svn ci -m 'Removing inadvertently added directory "cache".'
$ mv cache-tmp cache
$ svn propset svn:ignore 'cache' .
$ svn ci -m 'Ignoring a directory called "cache".'
4、若已经创建了文件夹,并已加入了版本控制,现在想忽略这个文件夹以及里面的内容:
实际上分两步:
1)SVN删除这个文件夹;
svn rm 'cache'
svn ci -m "svn rm cache"
2)创建同名文件夹并SVN忽略此文件夹,按照步骤2
$ mkdir cache
$ svn propset svn:ignore 'cache' . // 一定要记得最后有一个小点
property 'svn:ignore' set on '.'
$ svn ci -m 'Ignoring a directory called "cache".'
查看被忽略的文件夹:
$ svn st cache
I cache
SVN 忽略文件
如果想在SVN提交时,忽略某个文件,也就是某个文件不提交,可以使用
svn propedit svn:ignore 命令
详细步骤
svn propedit svn:ignore 目录名称
注意,在使用这个SVN的属性编辑前,你得确保后面的“目录名称”已经是SVN版本控制的目录。
如果要忽略此目录下的文件,可以如下操作。
比如,想忽略 /product 目录下的test.php文件,前提是/product目录必须在svn版本控制下,而test.php文件不在svn版本控制。
svn st 先看一下状态,会显示如下:
$svn st
? /product/test.php
我们需要将test.php文件加入忽略列表。
此时先设置SVN默认的编辑器
export SVN_EDITOR=vim
然后,使用svn propedit svn:ignore , 用法如下
svn propedit svn:ignore /product
此时会出现一个VIM的编辑窗口,表示需要将某个文件加入到忽略列表里
我们在编辑窗口中,写入
test.php
然后保存,并退出VIM编辑器。
这时候会有一个提示:属性 “svn:ignore” 于 “product” 被设为新值。
Set new value for property 'svn:ignore' on 'product'
表示文件test.php的svn:ignore属性设置成功。
然后使用svn st查看,会显示:
$svn st
M product
我们需要提交,然后这个svn:ignore属性才会起作用
svn ci -m '忽略test.php文件'
这时候,无论你如何修改test.php文件,再使用svn st时,也不会出现修改提示符合M了。
svn global-ignores svn:ignore用法
一、svn:ignore
1、定义:svn:ignore 是 Subversion的属性,作用是忽略未版本控制的条目,
要注意是“未加入版本控制的版本条目”,我们主要就是用它来忽略一些我们不想上传到版本服务器的文件或者目录;
2、命令行格式:
svn propedit svn:ignore project1 --editor-cmd notepad
则会打开记事本,在记事本中输入过滤规则,关闭记事本,就完成编辑了。
--editor-cmd参数指定了用来编辑属性的命令
3、注意:svn:ignore仅作用于当前目录;
二、svn global-ignores
1、定义:忽略未版本控制的条目,全局参数;
2、在Windows注册表中,位于HKEY_CURRENT_USER\Software\Tigris.org\Subversion\Config\Miscellany\global-ignores下;
3、通过TortoiseSVN设置global-ignores:
三、svn:ignore、global-ignores区别:
1、svn:ignore:只对当前目录有效;
global-ignores:是全局有效,就是所有项目都有效;
2、svn:ignore:必须每个工作目录都要设置,个性化配置;
global-ignores:只需要配置一次,使用方便;
SVN的ignore属性
svn通过属性来判断如何处理仓库中的文件,其中有一个属性便是 svn:ignore
你可以使用 svn propset 来设置svn:ignore在单独的目录。
你也可以给svn:ignore设置一个值,文件名或者是表达式,例如圆点目录(.)
例如:
svn propset svn:ignore *.class .
这时你使用svn status命令,就看不到 *.class文件了。如果你也想查看忽略的文件,你可以输入:
svn status --no-ignore
忽略文件夹
忽略文件夹,千万不要加斜杠。
svn propset svn:ignore bin . # yes
svn propset svn:ignore /bin . # nope
svn propset svn:ignore bin/ . # nope
使用 -R 递归属性配置
使用上面的方法只能忽略当前目录,如果你想要自己的子文件夹也进行忽略 要使用-R惊醒操作。
svn propset svn:ignore -R *.class .
忽略多种类型的文件
通过以下的命令你可以忽略 *.class, *.apk, Thumbs.db
svn propset svn:ignore -R *.class .
svn propset svn:ignore -R *.apk .
svn propset svn:ignore -R Thumbs.db .
或者,你可以这样:
svn propset svn:ignore -R "*.class
> *.apk
> Thumbs.db" .
使用-F通过配置文件来忽略
如android的,eclipse工程中需要忽略一些文件。
于是新建一个文本文档.svnignore并在其中写入:
bin
gen
proguard
.classpath
.project
local.properties
Thumbs.db
*.apk
*.ap_
*.class
*.dex
然后执行:
svn propset svn:ignore -R -F .svnignore .
全局忽略完成。
注意事项
进行上述步骤之后,每个文件夹内的bin,gen等目录都会被忽略。
所以起名字的时候不要起和忽略的名字相同的文件。
对忽略进行查看,删除
查看全部
# svn status --no-ignore
I wp-content/cache
I wp-content/themes/post_baidu_link_mimvp-blog.txt
查看指定目录
svn proplist -v [PATH]
# svn proplist -v wp-content/
Properties on 'wp-content':
svn:ignore
cache
删除忽略
svn status --no-ignore
到这里就结束了?
svn还有坑。。。
当你使用add的时候,千万不要使用
svn add *
这样会把忽略中的文件也添加到仓库,应该使用下面的命令行代替
svn add --force .
注意是点,千万别写成 *
如果在忽略之前,文件应经被add,应先删除
svn delete [path]
只从svn中忽略,而不删除文件
svn delete --keep-local [path]
参考推荐:
git/svn reset/revert 回滚到服务器上的某一个版本
版权所有: 本文系米扑博客原创、转载、摘录,或修订后发表,最后更新于 2018-09-14 11:44:46
侵权处理: 本个人博客,不盈利,若侵犯了您的作品权,请联系博主删除,莫恶意,索钱财,感谢!