赞
踩
上一篇文章主要介绍了将idea中常用的快捷键,快捷键要想熟练那就得在实际的工作中多使用,刚开始可能很麻烦经常去笔记中找,不过用多了自然就熟练了。
这篇文件将会介绍一下在idea中版本管理工具的使用,因为版本管理工具也是开发中必不可少的东西。这里主要介绍两个主流的版本管理工具git
和svn
。
不过这里的主题是idea所以只介绍在idea中如何使用这两个版本管理工具,至于git和svn的相关知识请自己去问度娘哈。网上有很多的资料
使用git的配置很简单,只需要指定安装的git的路径就可以了
在idea中忽略文件可以在设置隐藏文件哪里进行设置(忽略文件设置请参考前面的文章),只要是隐藏的文件,那么Git会自动忽略。当然也可以在git中单独配置。
将项目纳入git管理,这里其实也直接进入项目执行git init
在纳入git管理之后点击项目右键就会有Git的选项了。在里面使用和平常使用没有什么区别,先add,然后commit,然后再push。
不过需要注意的是,如果项目还未加入的到远程仓库,在第一次提交中之前得先执行pull,可以在命令行中进行操作,也可以在idea中操作,执行了pull之后才能执行push。
注意:
在idea中的有些操作和git上面的不是完全相同的,
这个挺简单的,直接选择从远程仓库拉取然后填写地址选择项目位置就行
或者
创建分支可以点击项目右键选择git然后选择Repository在选择Branches创建分支,在创建分支后idea的最右下角会出现一个git的分支标识,我们可以点击这个标识进行分支的切换以及各种操作
Checkout Revision这个的作用和reset --hard的作用类似,不过区别在于,reset --hard他会将远程仓库覆盖本地和暂存区域的,如果回滚的时候文件被git所管理并且有修改那么通过reset --hard的操作他会丢弃修改。而Checkout Revision则不会,并且如果在回滚之后有冲突,他还会让你解决冲突。所以这就不会直接把我们的修改给丢弃了,并且如果有冲突他还会创建一个stash
Reset Current Branch to Here,这个里面用的好像也只有hard和git中的一样,默认的那个Mixed,这里没啥用,即使回滚了暂存区的,在idea里面好像也没有checkout来将暂存区的数据覆盖到本地
Revert,这个和git中的Revert一样,不过如果没有冲突的话,他会让你选择冲突怎么解决
在解决冲突的时候有这么几个选项
Accept Yours,这个表示以我们现在的节点为准,选中要Revert节点的修改丢弃。
Accept Theirs,这个表示以选中要Revert节点为准,当前节点的丢弃,所以这样其实就完全跳到要Revert的节点上了
Merger,自己解决冲突
所以如果想效果和git上使用Revert的效果一致就选择Accept Theirs
合并冲突
这个页面的布局,左边的是local,也就是本地的,你修改的,右边的是server,也就是 服务器上的,中间的就是result,也就是合并结果。在合并的时候,看截图中间的2个红框,里面的箭头方向都是朝向中间的,要是你觉得哪边合适,也就是哪边的代码是OK的,那么就点哪边的箭头,然后抛弃的哪一边,就点对应的那个差号,就放弃啦。最后把这些都变更,冲突,都处理完啦。点apply,这之后,就算是合并冲突完事儿啦。
cherry-pick,这个和git上面的一样,用于将某个提交进行合并,并且又冲突了他会提示解决冲突。
在idea中使用代码比较,只需要选中要比较的数据右键就可以进行比较了,其中除了文件以外,其他的例如项目和包只能进行分支之间的比较
文件比较有3中
参考:
在使用svn的时候首先最好安装一个svn小乌龟。其中安装svn小乌龟的时候要记得要把command line client tools给加上,默认安装svn小乌龟他是不会安装客户端命令行工具的。
安装完之后在idea只需要指向这个svn命令行工具就可以了
svn忽略的文件配置和git一样,连配置的地方也一样
勾上这个选项他就会自动的检查是否有人提交了,如果有那那么就会在右下角给出提示
如果有人提交,那么右下角这个就会变亮,没有可以更新的时候就是灰色的
对于新增的文件这里和git一样新增的时候文件是红色的,要进行add,add了之后才能commit,而其他颜色的编辑和git一样。
在选择项目或文件后右键选中Subversion所弹出的框中各个选项的含义:
将项目交给svn管理我们可以选择VSC下面的Import into Version Control 下面的Share Project(Subversion)。这里的Share Project的功能和eclipse中Share Project中的功能一样,其实也可以选择Import into Subversion,不过这个仅仅只是将项目上传到svn仓库中,并不会将当前项目加入到svn的管理中。所以通常不用
在检出项目的时候有一点需要注意,就是在选择检出的项目所在的位置的时候,通常情况都是选择第二个带项目名的,这样导出之后就和svn上面的一样了。如果选择第一个我们还要自己对项目命名。
主要使用的控制台就两个Repository和Incoming,其中Repository中包含了历史提交记录,而Incoming中包含了本地尚未更新的提交记录。
Repository控制台
整个项目回退:
如果我们要想实现类似于git中的reset --hard的作用,只能在更新的时候选择对应的版本来更新,从而实现版本的跳转,还有需要注意的是如果我修改了某个文件没有提交。在更新的到另外一个版本的时候,如果另外一个版本没有这个文件那么这个文件是不会消失的。如果有冲突那么就解决冲突
点击最后面的那个…就可以选择对应的版本。
当然版本的回滚在idea中支持不是很好,我们可以直接使用TortoiseSVN来回滚到某个版本,不过如果非要在idea中回滚到某个版本也可以不过有点麻烦
idea中具体的回滚方式是,由于在跳转到某个版本之后,我们就不是最新版本了,所以这个时候在修改代码之后提交那么就会报错,所以我们就需要在跳转到某个版本之后改好了代码,在commit之前先更新一下,这时候由于我们修改了所以会有冲突,不过由于我们回滚所以直接用我们的修改覆盖所有就可以了。解决冲突之后在重新提交。但这个也有一个缺陷就是如果是回滚版本与最新版本这两个版本之间如果新增了文件我们不好解决因为不会有提示。所以还是在TortoiseSVN里面回滚比较好。
单个文件回退:
单个文件回退我首先需要选中某个文件,然后选择svn显示历史记录(show history)在打开的窗口中选择要回退的版本,右键然后选择get就可以进行回退了。
在svn中分支并不是很常用,并且在svn中的分支其实就是在仓库中创建一个项目副本。
参考:
创建分支
在创建分支前,需要到本地仓库中创建一个分支文件夹,然后再创建一个分支版本例如:在项目同级目录下创建一个branches,然后再branches下面创建一个v1,表示v1版本分支存储路径。
然后再idea中的svn操作中选择Branch or Tag进行分支的创建
完成之后他会将项目上传到svn仓库的指定位置中。
创建好之后在idea中配置创建好的分支,可以在更新的时候配置也可以在控制台配置
切换分支
切换分支其实就是将svn仓库中的分支在拉一份下来,可以在更新的时候选择要切换的分支
点…选择我们之前配置好的分支,然后更新,更新下来之后就是最新的分支了
合并分支
假如我们要将v1分支合并到trunk主分支里面,那么需要先切换到trunk主分支中。然后点击控制台的Merge From按钮选择要合并的分支
并且在合并的时候我们可以选择是合并某些版本或所有都合并
第一个为合并所有,第二个为合并某些版本点击之后他会让你选择版本进行合并
如果有冲突,会弹窗冲突的文件列表,点击每个文件解决冲突。如果没有冲突,等一会即合并完成
其实勾选那个Cleanup就行,当然也可以勾选一下Optimize imports 优化导入包
在idea的Version Control中我们可以,点击+号新增一个Changelist。当文件修改之后他会自动进入Default这个默认的Changelist。然后我们可以点击Default里面的文件拖到我们新增的changelist中。在提交的时候我们可以选择提交那个Changelist中的修改。通过这个我们就可以只提交某一部分数据了。
提交的时候可以选择提交那个Changelist中的修改
并且这个还有一个好处是,我们可以将一些不需要提交的临时改动放在一个单独的分组中,在弄好了之后就直接把那个分组进行还原就可以了
让项目脱离版本控制的方式有两种
勾选上表示不保存密码
好啦,到这里在idea中怎么使用git和svn就介绍完了,可能在实际的使用中有很多操作都不会使用,但是我们还是要了解的。对于git和svn的操作我们还可以通过TortoiseGit和TottoiseSVN或者直接通过命令行来操作。所以操作的途径还是很多的哈
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。