IDEA Git常见用法
前言
最近开发环境变成了ubuntu + IntelliJ IDEA。之前都是在Windows上使用TortoiseGit(用法可参考Git客户端(TortoiseGit)基本使用详解),而在ubuntu上无法安装TortoiseGit,并且Git命令行使用起来也不是很方便,所以最终决定使用IDEA自带的Git工具。网上相关的文章很多,但不是很全,自己操作了一遍,记录下使用方法。
一、在IDEA中配置Git
1、使用Git当然需要先安装Git,安装过程就不详细说明了。安装之后,点击File -> settings,搜索Git,如下图是我设置好的:
2、选择好路径之后,点击右侧的 Test 按钮,弹出版本号则表示配置成功。如下:
二、克隆项目
1、打开IDEA,点击Check out from Version Control -> Git,弹出框:
2、在URL中输入 github 或者 gitlab 地址,在Directory中选择本机存放的地址,点击Clone,弹出登录框:
3、输入对应平台用户名密码,点击 Log In,就可以将远端代码拉取到本地了
三、提交代码(commit and push)
1、新建一个文件Test.txt,此时文件名是红色的。右键Module名称(也可以右键单个文件),选择 Git -> Add:
此时文件名变成了绿色,表示该文件已加入Git管理:
2、选择 Git -> Commit Directory,可以看到我们本次需要提交的文件:
3、点击Commit,本次修改就提交到仓库(可以看到文件名变成正常颜色了)
注意:提交时,一定要填写Commit Message,记录本次提交改动了什么(如果公司有提交日志规范的,需要按照规范来)
4、选择Git -> Repository -> Push,将本地仓库代码推送的远程仓库:
四、创建/切换分支
1、选择Git -> Repository -> Branches,弹出框:
2、可以看到当前只有一个分支,分支名是master。点击New Branch,创建一个新分支:
3、点击OK后,再次选择Git -> Repository -> Branches,可以看到多了一个新分支my_branch,并且当前分支也是my_branch(当前分支前有一个图标)
4、点击 master 分支右边的小三角,可以看到一些操作(具体如下图所示)。点击Checkout,可以切换到master分支
五、暂存(stash)、暂存还原(unstash)
使用场景:当想切换分支,但当前分支有些代码又不想 commit。如果此时直接切换分支,会将当前分支上新增的代码直接带到其它分支,为了避免出现这种情况就可以使用 stash 功能。
stash 是将当前分支还不想提交的内容(该内容一定要受 git 管理,比如新增文件没有执行add,则stash就不会生效)暂存起来,也就是还原成修改之前。此时切换到其它分支就不会将内容带过去,同时切回来后,也可以在该分支将内容恢复。
1、修改Test.txt文件内容,同时新增文件Test2.txt:
2、选择Git -> Repository ->Stash Changes,弹出框:
3、在 Message 中,输入一个唯一标识,然后点击Create Stash,会发现修改和新增的文件内容还原了:
4、此时可以切换到其它分支,然后切回来。选择Git -> Repository ->UnStash Changes,弹出框:
5、点击Pop Stash,会发现之前所有修改的内容全部还原了。
六、内容比较(Compare With)、回退(Revert)、查看历史(Show History)
1、在Test.txt文件中,修改文件内容。右键文件,选择Git -> Compare With,弹出:
2、点击上面的一行,可以看到当前文件改动了什么,即当前文件与本地仓库文件进行对比。如下:
如果是与其它分支进行对比,可以选择Git -> Compare With Branch。
3、如果想回退到本地仓库内容,可以选择Git -> Revert,弹出框:
点击Rever,文件就回退了(直接点击弹出框中的文件,也可以看到对比信息)
4、如果想查看提交记录,可以右键文件,然后选择 Git -> Show History。弹出框:
5、右键某一条提交记录,可以看到:
七、其它
1、文明颜色代表含义:
红色:未被版本控制的文件
绿色:新加入版本的文件,即我们新创建的文件,还未提交到远程仓库
蓝色:修改过的文件,即远程仓库中已有该文件,本次对它进行了修改,但是还未提交
2、Git -> Repository下,其它操作:
Fetch:从远程拉取最新其它分支
Pull:从远程拉取最新代码(push前最好先执行pull)
Merge Changes:将远端分支的代码合并到当前分支