git的使用
有空写哦~~~
svn的使用
一、版本控制简介
版本控制的一大功能是可以隔离变化在某个开发线上,这个开发线就是分支(branch)。
svn打分支或标签,使用的是一种“轻量copy”的方式。它不会完整的拷贝仓库,而是创建一个内部链接来指向一个特定的版本。因此,创建分支和标签非常快。
集成分支、功能分支和修复分支,master、feature 和 hotfix
二、创建分支
由于svn服务不在本机,选择在远程创建3个分支目录
在远程服务上创建如下3个目录结构,根目录为项目名称,trunk为主分支目录,branch为次分支目录,tag为里程碑分支
1、将远程仓库checkout到本地
如下checkout成功
2、创建主分支
在trunk下创建主分支初始化项目
【1】复制项目到trunk
可选择创建项目名称,这样方便后面可以不用改名称
【2】方式1:可以选择本地提交
1、先加入链接版本控制,如下
2、添加完成,如下
3、提交
4、主分支初始化提交
5、提交完成
6、远程看到效果
【3】方式2:通过idea提交主分支初始化项目代码
1、点击file将项目导入到idea
2、找到subversion,提交更新
3、如果没有subversion,做如下设置
3、创建次分支
1、找到 banch,建立自己的分支
2、可选择加入版本号,相同的项目名,或者不加版本号,版本号放在项目名后
3、分支创建成功
三、切换当前分支
1、当前为主分支
2、切换为次分支
3、切换成功
四、将次分支合并到主分支
1、修改次分支代码
2、切换到主分支
3、找到merge from
4、选择branches
全部合并
5、冲突修改合并
可选择被合并的,也可以选择整合
合并修改
合并成功
五、tag的使用
注意 tag一般只保存阶段成果,不用来保存变化的内容
tag打标签同分支建立相同,具体看次分支的建立过程
此处可以看出,tag已经打了版本号,其实branch时,可以直接在项目名后加版本号
六、其他操作
1、svn文件夹及其内容删除有学问
命令行方式参考如下
本地提交远程的文件没删,但是本地的删除,然后提交,
发现文件夹下面的文件删除,然后提交,远程文件不见了,但是文件夹还在
发现提交远程只能删除文件夹内的文件,而文件夹没有删掉
如果文件已经提交,在远程删除了文件和文件夹,这时更新远程,会发现,本地的并不会删除,此时需要自己删除本地了。
而先删除本地,再提交远程通过一下两种方式
【1】删除方式1(已提交)
通过idea删除文件夹以及其内容文件发现,如果整个文件夹删掉包含文件,被本地删除的对象没有出现在SVN的提交变更记录中,也就是并未与VCS同步,不能直接提交。提交目录下没有删除的记录。
这是因为,文件只被标记为已删除,但未被彻底删除。
在SVN的Locally Deleted files列表中找到本地已删除的对象的记录,此时它们被SVN标记为“deleted locally”,并未真正删除 。
选中Locally Deleted files中的记录,右键选择“Remove from VCS”,告诉SVN要同时删除远程仓库中的对应对象。
这样,删除记录就会出现在提交变更记录中,这时就可以执行SVN提交操作了。
提交后,发现远程没有了
【2】删除方式2(已提交)
然后提交
2、忽略提交文件
已经提交的此配置文件是无效的
【1】方式一:
选中项目右键subversion即可
选中要忽略的文件
【2】方式二:
在项目根目录空白处右键点击TortoiseSVN → Properties
选择svn:global-ignores,global代表全局,子目录会继承这个忽略配置
3、撤销add
撤销 https://xxx.xxx.com:4399/svn/xxx/ 路径下刚才所有的add操作,直接使用
svn revert --recursive https://xxx.xxx.com:4399/svn/xxx/
4、撤销修改
【1】未提交修改
本地代码写错,还没有commit时
【2】已提交修改
(1)恢复到指定版本
红线部分:
复原到此版本 复原此版本做出的修改
撤销后再次重新提交,就会复原到指定版本了
恢复到指定版本,从新提交变成新版本
(2)复原做出的修改
复原后
当前版本提交的修改被撤销了