赞
踩
git是我们日常用的比较多的版本管理工具,在强大的IDEA支持下,git中很多操作都变得很方便,所以这篇文章就专门来介绍一下基于IDEA的关于git的一些常见操作的使用方式。
为此我们不妨在gitee上创建一个实验项目。
点击创建之后,将仓库名称命名为idea-git,项目设置为私有,完成这些设置之后点击创建即可。
为了方便后续项目的演示,我们在这里顺手把readme初始化一下
自此我们的项目就准备好了。
我们日常将项目clone到本地可能都是通过图形化工具将项目clone到本地
其实IDEA也有办法将项目clone到本地,如下所示,通过导航栏的vcs选择checkout from version control,然后点击git。
将从gitee上复制的仓库地址粘贴到url上,点击clone,这时候IDEA就会自动将项目clone到对应的文件夹下。
注意这里我们项目还是个空项目,所以暂时不将其创建为项目,所以这里选择no。
我们到spring官网创建一个基础的spring boot项目,然后将代码复制到gitee克隆下来的项目中。
完成这些步骤之后,我们再通过idea将这个项目打开。可以看到一堆红色的文件,说明这些文件目前还没有被git受控。
此时我们点击IDEA右上角的commit键将需要提交的文件勾选提交到本地仓库。
这里笔者为了方便直接勾选所有文件。然后直接点击右下角的push。
如果IDEA弹出这样的输出就说明代码提交到本地仓库成功了。
然后我们就可以通过push键将本地仓库的代码提交到远程仓库。注意IDEA默认这里是没有push键的,如果读者希望push键出现在右上角可以参考笔者的这篇文章:在IDEA中配置Git的Push键
此时我们到gitee查看仓库,可以看到我们刚刚的提交记录了。
为了演示从本地拉取远程仓库的更新,笔者这里直接在gitee上直接完成仓库的修改。我们直接在项目中点击readme.md这个文件。
然后点击编辑进行文件修改操作。
我们将内容进行一番操作
然后添加提交信息并将修改保存
可以看到这里修改生效了,然后我们就可以通过IDEA拉取这个改动了。
这里我们介绍两种拉取更新的操作,第一种就是直接点击pull键进行拉取。它会将默认的分支的改动直接拉取到本地,这种方式默认分支情况下比较推荐。
这里笔者演示一下第二种,如果仓库中有多分支的情况,我们希望本地仓库拉取指定分支的代码那么就需要使用第二种方式。
首先对准项目右键点击git找到pull选项,如下图
此时就会弹出所有的远程分支,因为我们这里只有一个默认的master,所以我们直接默认master点击pull即可
可以看到我们成功的拉取到远程代码的修改了。
有时候我们在本地修改某个文件的时候,远程的文件已经被人修改了,这种情况就会导致提交时会出现冲突,git就会要求我们解决冲突后才能提交。
我们不妨模拟一下这种情况,首先在gitee上将readme改为bbb,模拟开发人1修改了代码。
修改提交信息,保存这个修改操作。
然后我们本地将文件内容修改为ccc,尝试push到远程仓库
这里我们直接选择commit and push将文件提交上去。
提交过程中IDEA报提示说远程分支拒绝接受修改,因为远程仓库有了最新的修改,所以我们需要在本地将远程仓库的修改合并到本地代码中,所以我们点击merge进行合并
然后IDEA就会弹出产生冲突的文件,这里有3种合并方式:
所以我们选择第3个选项,直接点击merge。
可以看到面板分为3栏,左边的我们的文件,中间我们本地修改前的内容,右边为远程仓库修改的值。
我们希望保留远程仓库的修改,所以我们先点击右边的箭头,保住其他人的修改。
然后再点击左边的箭头,将我们的修改放到下一行。
最终修改结果如下,点击apply完成代码合并。
最后点击push将代码提交
到gitee上查看修改成功与否,可以看到我们将冲突解决并将自己的代码提交了。
有时候IDEA会自动将某些文件受控到版本控制中,如下所示。
如果我们不希望某些文件受控的话,可以对着文件键入CTRL+alt+z然后就会弹出下面的对话框,我们选择rollback,即可将文件取消受控。
最终文件就会变成这样。
我们希望在IDEA中可以看到关于当前项目中所有的修改历史,那么我们可以通过导航栏找到version control或者用快捷键alt+9将版本控制历史记录调出来。
可以看到IDEA最下方此时就会输出提交的日志,我们在这里就可以看到我们的所有操作了。
有时候我们为了修改一个bug进行了多次commit,如下图所示,我们希望将这些修改合并成一次commit,我们完全可以通过IDEA实现这个操作。
操作方式很简单,我们找到需要合并的最早一个提交,点击下图所示选项
将第一条设置为pick,其余的修改都设置为squash,点击start rebasing。
键入合并的信息,点击resume rebasing
自此,修改合并成功了。
我们在开发过程改动了某个文件,对这个文件进行各种增增改改,我们希望将文件还原回修改前的样子,在IDEA的操作下,这种工作区代码还原非常方便。
我们可以在local change中看到本次修改的文件。可以看到我们修改了readme.md。
我们不妨对准readme.md键入ctrl+d
然后我们就会看到变化的内容了,然后我们直接点击箭头即可将代码还原回去。
可以看到工作区的代码直接还原了。
有时候我们希望本地代码可以回退到之前修改的某个版本查看代码的改动记录,例如我们希望回退以看到最早初始化的代码,但是我们不希望这个回退后可以还原,对远程仓库没有任何影响。
做法很简单,对准需要回退的修改中右键选择下图所示选项。
选择hard选项,这个选项会将工作区和缓存区代码全部重置。
可以看到回退后我们就可以看到这个修改时所有代码的样子了。
还是接上一个例子,我们希望将回退的代码提交到远程仓库中,很简单,我们直接对着这个修改右键选择revert即可。
然后点击commit and push即可
可以看到,代码直接被还原了。
我们使用git开发的模式都是通过分支修改合并到主干的方式完成的,所以我们也希望可以在idea实现创建一个名为dev的分支并推送到远程仓库。
操作方式很简单,点击右下角的git:master,然后选择new branch
然后将分支名设置为dev
此时我们的分支dev就创建完成了,并且分支也切换到dev上。
然后我们直接点击push即可将dev分支提交到远程仓库上。
IDEA输出这段文字就说明提交完成了。
查看仓库可以看到dev分支已经出现了。
我们上文将分支切换到dev,我们希望本地分支切换为master进行开发。操作方式也很简单,点击右下角,选择master。
然后选择checkout即可
我们希望dev分支修改的记录可以合并到主干master上。基于IDEA我们也可以很简单的完成这个操作。
为了演示这个操作,我们首先修改dev分支,将readme修改并提交。
然后回到master分支,右键项目选择pull
选择dev点击pull,可以看到master分支得到的dev关于readme的修改。
然后我们将这个修改push到远程仓库即可
我们在分支2修改了代码,希望将这个修改合并到dev1上。对此我们也可以用IDEA实现这个操作,首先我们创建一个dev2的分支对readme进行修改并提交到远程仓库。
然后将分支切换到dev,选中远程仓库分支dev2选择merge info current将分支2的代码合并到分支1上。
然后我们的dev分支就会得到dev2的修改结果,我们将其push到远程仓库即可。
例如我们想删除本地分支dev2,我们退出这个分支,然后右下角git找到这个分支点击选择delete即可。
删除远程分支的方式和本地分支差不多,这里就不赘述了。
可以看到选择delete之后,远程仓库关于dev2的信息都消失了。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。