![](https://wordpress-dqy.oss-accelerate.aliyuncs.com/uploads/2019/02/142950_kREr_3452433.png)
本文介绍使用IDEA控制Git操作
关联本地Git客户端
首先要根据系统环境安装Git客户端
然后使用File –> Settings –> Version Control –> Git配置客户端安装目录
![](https://wordpress-dqy.oss-accelerate.aliyuncs.com/uploads/2019/02/155624_83J9_3452433-1024x757.png)
创建本地仓库
根据项目要求创建自己的项目
然后使用VCS –> Import into Version Control –> Create Git Repository…在项目上创建Git仓库
![](https://wordpress-dqy.oss-accelerate.aliyuncs.com/uploads/2019/02/160724_2AA1_3452433.png)
创建成功后会在项目文件夹内出现.git 目录
克隆远程仓库
我们可以通过两种方式克隆Git项目。
第一种,通过其他工具(如:Git Bash)将Git项目克隆到本地,然后使用IDEA直接打开项目。File –> Open…
第二种,使用IDEA从版本库直接导入项目。File –> New –> Project from version control –> Git
我们需要填写Git版本库URL、存储目录
![](https://wordpress-dqy.oss-accelerate.aliyuncs.com/uploads/2019/02/134314_Pfrt_3452433.png)
提交代码
我们如果希望文件被Git管理那我们就要将文件进行add操作。
在IDEA中我们只要对某个文件设置一次add,之后就不用在手动进行add了。
文件右键 –> Git –> Add
![](https://wordpress-dqy.oss-accelerate.aliyuncs.com/uploads/2019/02/160848_zOkt_3452433.png)
提交代码时我们使用 文件右键 –> Git –> Commit Directory…进行提交
![](https://wordpress-dqy.oss-accelerate.aliyuncs.com/uploads/2019/02/161311_5qcH_3452433.png)
分支管理
分支管理主要集中在IDEA的右下角操作区。
![](https://wordpress-dqy.oss-accelerate.aliyuncs.com/uploads/2019/02/094820_6crR_3452433.png)
主菜单功能
![](https://wordpress-dqy.oss-accelerate.aliyuncs.com/uploads/2019/02/134413_lqPq_3452433.png)
New Branch : 从当前分支新建分支。上图就是从master分支创建新的分支。
Checkout Tag or Revision : 使用分支、标签或提交编码,检出一个临时分支。
Local Branches : 本地分支列表。同时显示对应了那个远程分支。
Remote Branches : 远程分支列表。
本地分支菜单
![](https://wordpress-dqy.oss-accelerate.aliyuncs.com/uploads/2019/02/134512_BmcA_3452433.png)
Checkout : 检出这个分支。
Checkout As… : 使用这个分支创建新的分支并检出到新分支。
Compare With… : 使用当前分支与所选分支做代码提交比较。
Rebase Current onto Selected: 在当前分支做变基。(将所选分支提交加入到当前分支)
Checkout with Rebase : 检出所选分支并做变基。(将当前分支提交加入到所选分支)
Merge into Current: 合并到当前分支(将所选分支合并到当前分支)
Rname:修改所选分支名称
Delete :删除所选分支
远程分支菜单
![](https://wordpress-dqy.oss-accelerate.aliyuncs.com/uploads/2019/02/134925_AYKm_3452433.png)
Checkout As… : 使用远程分支创建一个新的本地分支,并检出这个分支。
Compare With : 使用当前分支与所选分支做代码提交比较。
Rebase Current onto Selected : 在当前分支做变基。(将所选分支提交加入到当前分支)
Merge into Current: 合并分支(将当前分支与所选分支进行合并)
Delete :删除所选分支
本地分支推送到远程仓库
![](https://wordpress-dqy.oss-accelerate.aliyuncs.com/uploads/2019/02/101846_ibVx_3452433.png)
检出要推送的分支,然后项目右键 –> Git –> Repository –> push
push的时候会有new标签提示会在远程新建分支
![](https://wordpress-dqy.oss-accelerate.aliyuncs.com/uploads/2019/02/101930_tfpu_3452433.png)
标签管理
检出要打标签的分支,然后Git –> Repository –> Tag…
![](https://wordpress-dqy.oss-accelerate.aliyuncs.com/uploads/2019/02/102106_wNdR_3452433.png)
本地标签推送到远程仓库
项目右键 –> Git –> Repository –> push
![](https://wordpress-dqy.oss-accelerate.aliyuncs.com/uploads/2019/02/101846_ibVx_3452433-1.png)
然后选中底部的Push Tags。我们可以选择推送所有标签还是当前分支标签。
![](https://wordpress-dqy.oss-accelerate.aliyuncs.com/uploads/2019/02/102427_HZUX_3452433.png)
代码拉取、推送
代码拉取项目右键 –> Git –> Repository –> pull
![](https://wordpress-dqy.oss-accelerate.aliyuncs.com/uploads/2019/02/102647_4dXk_3452433.png)
代码推送项目右键 –> Git –> Repository –> push
![](https://wordpress-dqy.oss-accelerate.aliyuncs.com/uploads/2019/02/101846_ibVx_3452433-2.png)
变基操作
普通变基
选择分支执行变基操作。这里需要注意当前分支为补丁分支,选中的分支为基底分支。也就是说当前分支提交会添加在选中分支提交之后。
![](https://wordpress-dqy.oss-accelerate.aliyuncs.com/uploads/2019/02/135118_gwV0_3452433.png)
合并提交(交互式变基)
在代码没有pull前我们可以在本地分支进行提交的合并。这样会使得远程分支不去关心本地开发过程日志,而使得远程日志干净整洁。
变基前log
![](https://wordpress-dqy.oss-accelerate.aliyuncs.com/uploads/2019/02/105049_W10i_3452433-1024x57.png)
找到要合并的第一条log,然后右键选择Interactively Rebase from Here…进行交互式变基
(此选项低版本IDEA可能没有请更新到2018版以上)
![](https://wordpress-dqy.oss-accelerate.aliyuncs.com/uploads/2019/02/105200_dATH_3452433-1024x258.png)
除题一条外其他全部选择squash随前面的提交一并提交
![](https://wordpress-dqy.oss-accelerate.aliyuncs.com/uploads/2019/02/105609_0H5M_3452433.png)
编辑交互式变基提交说明。默认显示合并的所有提交的内容,我们也可以添加和修改内容。
![](https://wordpress-dqy.oss-accelerate.aliyuncs.com/uploads/2019/02/105817_wcsG_3452433.png)
变基后日志
![](https://wordpress-dqy.oss-accelerate.aliyuncs.com/uploads/2019/02/105836_LYFU_3452433-1024x18.png)
查看提交日志
log页签
![](https://wordpress-dqy.oss-accelerate.aliyuncs.com/uploads/2019/02/104710_FBqk_3452433-1024x297.png)
查看控制台
console页签。在控制台中我们可以看到实际执行的git命令,可以帮助我们查找问题。
![](https://wordpress-dqy.oss-accelerate.aliyuncs.com/uploads/2019/02/104822_06Uw_3452433.png)
储藏工作区
有时我们需要经正在编写的代码临时储藏,然后去修改一些bug,完成bug修改后进行恢复。这时我们可以使用代码储藏。
项目右键 –> Git –> Repository –> Stash Changes
![](https://wordpress-dqy.oss-accelerate.aliyuncs.com/uploads/2019/02/105212_k8UK_3452433.png)
填写储藏名称
![](https://wordpress-dqy.oss-accelerate.aliyuncs.com/uploads/2019/02/105327_zNO8_3452433.png)
这是我们会发现修改的代码不见了。
之后我们要恢复储藏区的内容
项目右键 –> Git –> Repository –> UnStash Changes
![](https://wordpress-dqy.oss-accelerate.aliyuncs.com/uploads/2019/02/105500_kndZ_3452433.png)
选择要恢复的暂存名称并恢复暂存
![](https://wordpress-dqy.oss-accelerate.aliyuncs.com/uploads/2019/02/105622_BrGU_3452433.png)
这时我们发现修改的代码又回来了
提交回退
我们如果想要放弃最近一次提交的内容可以使用提交回退
回退前log
![](https://wordpress-dqy.oss-accelerate.aliyuncs.com/uploads/2019/02/110355_Lttx_3452433-1024x114.png)
项目右键 –> Git –> Repository –> Reset HEAD…
![](https://wordpress-dqy.oss-accelerate.aliyuncs.com/uploads/2019/02/110422_3GG1_3452433.png)
执行回退(HEAD后面加几个^就回退几次提交)
![](https://wordpress-dqy.oss-accelerate.aliyuncs.com/uploads/2019/02/110555_Rflo_3452433.png)
执行后日志
![](https://wordpress-dqy.oss-accelerate.aliyuncs.com/uploads/2019/02/110617_zzTM_3452433-1024x97.png)
管理远程仓库地址
项目右键 –> Git –> Repository –> Reotes…
![](https://wordpress-dqy.oss-accelerate.aliyuncs.com/uploads/2019/02/112938_yt6f_3452433.png)
![](https://wordpress-dqy.oss-accelerate.aliyuncs.com/uploads/2019/02/112951_70l9_3452433.png)
提交应用(挑樱桃)
我们可以使用提交应用的方式,将一次提交应用在其他分支上。
首先我们要切换至需要应用提交的分支上。
然后在log界面找到那次提交,右键 –> Cherry-Pick
![](https://wordpress-dqy.oss-accelerate.aliyuncs.com/uploads/2019/02/135957_tyfA_3452433-1024x319.png)