svn设置忽略文件
svn设置忽略文件
前言
什么是SVN?
SVN是subversion的缩写,是一个开放源代码的版本控制系统。简而言之就是用于多个人共同开发同一个项目,实现共享资源,实现最终集中式的管理。
为什么要使用SVN?
- 把自己编写代码提交至服务器。每提交一次会产生一个版本,如果在实际过程中写错了可查看或回退历史版本;
- 协同工作,提高团队工作效率。实际开发中不止一个人在开发,当多人开发并提交代码后,SVN服务器会自动合并代码;
- 可以追溯提交时间和提交人,比如多人修改了同一个片段的代码,可以查看是谁修改了什么代码;
- 轻松比较不同版本间的细微差别
- ......
设置忽略文件
在多数项目中,你总会有文件和目录不需要进行版本控制。这可能包括一些由编译器生成的文件,比如编译器自动生成的文件.vscode
、.idea
等,或许是某些依赖包的文件夹和不需要进行管理的文件输出,比如node_modules
、ios
、android
、.cache
、dist
等等。
为什么要配置忽略文件?
如果不进行忽略文件的设置,很多中间文件和二进制文件都被commit到库中,浪费空间不说,还带来管理上的混乱。
以下是我们开发中新增的忽略文件设置:
- 编译器:
.idea
、.vscode
- git:
.editorconfig
、.gitignore
- App端:
node_modules
、dist
、.sourcemaps
、android
、ios
、platforms
、www
、plugins
- PC端:
node_modules
、dist
、.sourcemaps
、.temp
、.cache
、eslintrc-auto-import.json
、auto-imports.d.ts
、components.d.ts
、
MacOS
首先打开安装好的Cornerstone软件,点击左上角的
Cornerstone
,点击Preferences
(偏好设置)在设置界面展开选项,找到
Subversion
并点击以下界面就是我们设置忽略文件的地方。首先取消掉勾选选项,勾选的意思是使用默认的忽略文件配置,我们需要自定义,因此不勾选。
可以看到这个文本框里面已经有了一些内容,是软件默认帮我们配置的,我们不对其进行修改,直接在它的基础上添加忽略的文件。
在文本框内输入文件名(或文件夹),按下回车就会添加该忽略项,最后点击右下角保存按钮即可。
Windows
首先在桌面右键菜单找到
TortoiseSVN
,点击Settings
进入设置界面在
General
(常用)菜单界面找到Subversion
,在Global ignore pattern
栏配置忽略文件。设置完成后点击下方应用
按钮即可。
注意,每个配置项之间用空格分隔
svn的使用
MacOS
MacOS用户安装Cornerstone客户端 下载地址
下载项目
首先复制一下svn的地址 (因为Cornerstone可以帮我们自动识别已复制的地址)。然后打开
Cornerstone
,点击左下角的加号,选择Add Repository
进行创建一个库。选择
HTTP Server
,如果你已经按照前面的步骤操作,那么这时候项目的配置已经被自动粘贴到了该界面。你只需要填写自己的svn账号和密码,最后点击Add
完成创建库。在左侧的仓库列表我们可以看到刚刚添加的库,但它只是一个远程仓库,并不存在你的电脑中。所以我们要先把它检出一份到我们本地,右键该仓库,选择
Check Out Working Copy
选择文件的存放位置和命名,默认检出的是最新版本。如果有特殊需求,可以在底部选择你要检出的项目版本和检出的文件类型。 最后点击右下角
Check Out
。打开
Finder
到刚刚保存的位置底下就能看到检出的文件了。这样就完成了从svn下载项目了!
修改代码
修改代码之前,特别是公共代码,要先"锁住"这个文件。
什么是锁?为什么要锁住文件?
在多人开发中,如果多个人同时修改一个文件,那么最后提交文件的时候有可能会造成冲突。比如,同一段代码,你新增了一句,同时另一个同事不知道你在修改这个文件,他删除了一整段。最终提交的时候svn是要保留还是删除呢?这时候就会发生冲突。
因此我们在修改代码之前,需要先告诉大家:我正在修改这个文件,你先不要动,等我改完提交了你再来改。于是svn用“锁”这个动作来告诉大家:这个文件现在被某人锁住了,你改不了。
首先需要对所有文件进行配置。依次打开CornerStone->Preferences->Subversion,进入设置界面
这一步是配置所有文件都是只读状态,如果需要修改文件内容,则必须进行
Lock
操作找到你要修改的文件,右键,选择
Lock
这时候出现一个窗口,里面会展示谁锁住了这个文件,如果没有人锁住(如下图),这时你可以点击右下角
Lock
进行锁住文件操作。随后会出现一个锁的图标,代表这个文件已经被你锁住了,现在可以愉快地进行开发了!当然有“锁”就会有“解锁”,当你已经修改完代码并且提交了,你需要把这个文件解锁,好让其他同事也能使用这个文件。
注意:在锁住文件之前,需要先获取最新代码,有可能其他同事刚刚提交了新的代码。
更新代码
打开
Cornerstone
,找到你要更新的项目的文件夹, (注意,这里选择的是仓库下检出的文件夹,如果选择仓库,更新按钮是禁用的)。点击
Update
按钮,出现绿色的勾勾符号和Updated ... to revision xxx
就代表获取最新代码完成了。
提交代码
打开
Cornerstone
,找到你要提交的项目的文件夹,点击Commit
按钮在上方的文本框写下你提交了什么内容,这是为了方便所有开发者能了解你大致改动了什么内容,方便日后出现bug排除问题和回溯历史版本。
其他常用操作
更多详细教程请移步Cornerstone使用教程
常见的文件符号
修改代码后,可以切换到change
查看修改了哪些文件。每个修改的文件后面都有一个符号,
?
表示在你的项目中引用了,但是还没有添加进来;M
表示该文件内容被修改了;A
表示新增文件;D
表示该文件被删除了;C
表示该文件有冲突;......
下面对各种类型的文件操作进行详解:
?
:带问号的文件,说明你本地引入了这个文件,但是没有告诉svn这个文件最终要不要提交到服务器,因此需要先告诉svn,我这个文件是要提交的。
这时候刚刚添加的文件后面的符号变成了A
,说明svn已经知道了这些文件是你新增的。
!
:带感叹号的文件,说明你本地删除了这个文件,但是没有告诉svn这个删除的操作最终要不要提交到服务器,因此需要先告诉svn,这个文件的确是要被删除的。
这时候刚刚的文件后面的符号变成了D
,说明svn已经知道了这些文件是需要被删除的。
M
:带M
的文件,说明这个文件有内容被修改了。你可以点击它,再选择左下角的Compare with Base
,就可以跟之前的版本对比修改了哪些内容。
Windows
Windows用户安装TortoiseSVN客户端
下载项目
在桌面右键菜单,选择
SVN Checkout...
填写项目地址并选择文件的存放位置,然后点击
OK
。等待文件检出完成。项目检出完成!
修改代码
修改代码之前,特别是公共代码,要先"锁住"这个文件。
什么是锁?为什么要锁住文件?
在多人开发中,如果多个人同时修改一个文件,那么最后提交文件的时候有可能会造成冲突。比如,同一段代码,你新增了一句,同时另一个同事不知道你在修改这个文件,他删除了一整段。最终提交的时候svn是要保留还是删除呢?这时候就会发生冲突。
因此我们在修改代码之前,需要先告诉大家:我正在修改这个文件,你先不要动,等我改完提交了你再来改。于是svn用“锁”这个动作来告诉大家:这个文件现在被某人锁住了,你改不了。
打开svn项目的本地文件夹,找到需要修改的文件,右键选择
SVN Get lock
这时候出现一个窗口,里面会展示谁锁住了这个文件,如果没有人锁住(如下图),这时你可以点击右下角
OK
进行锁住文件操作。随后会出现一个锁的图标,代表这个文件已经被你锁住了,现在可以愉快地进行开发了!当然有“锁”就会有“解锁”,当你已经修改完代码并且提交了,你需要把这个文件解锁,好让其他同事也能使用这个文件。
注意:在锁住文件之前,需要先获取最新代码,有可能其他同事刚刚提交了新的代码。
更新代码
找到本地文件夹的根目录,右键,选择
SVN Update
出现
Updated Finished
就代表获取最新代码完成了。
提交代码
找到本地文件夹的根目录,右键,选择
SVN Commit
出现提交窗口后,在顶部文本框编写本次提交的内容,在下方选择需要提交的文件,最后点击
OK
完成提交操作。
其他常用操作
更多详细教程请移步TortoiseSVN使用教程
常见的文件符号
提交代码之前,可以看到被修改的文件后面会有一个status
状态,常见状态有以下几种:
non-versioned
表示在你的项目中引用了,但是还没有添加进来;modified
表示该文件内容被修改了;added
表示新增的文件;missing
表示该文件丢失了;deleted
表示该文件被删除了;......
下面对各种类型的文件操作进行详解:
non-versioned
:没有添加的文件,说明你本地引入了这个文件,但是没有告诉svn这个文件最终要不要提交到服务器,因此需要先告诉svn,我这个文件是要提交的。
这时候刚刚添加的文件后面的符号变成了added
,说明svn已经知道了这些文件是你新增的。
missing
:带感叹号的文件,说明你本地删除了这个文件,但是没有告诉svn这个删除的操作最终要不要提交到服务器,因此需要先告诉svn,这个文件的确是要被删除的。
这时候刚刚的文件后面的符号变成了deleted
,说明svn已经知道了这些文件是需要被删除的。
modified
:说明这个文件有内容被修改了。你可以右键选择它,再选择Compare with Base
,就可以跟之前的版本对比修改了哪些内容。