本文介绍使用IDEA控制Git操作

关联本地Git客户端

首先要根据系统环境安装Git客户端

然后使用File --> Settings -->  Version Control --> Git配置客户端安装目录

创建本地仓库

根据项目要求创建自己的项目

然后使用VCS --> Import into Version Control  --> Create Git Repository...在项目上创建Git仓库

创建成功后会在项目文件夹内出现.git 目录

克隆远程仓库

我们可以通过两种方式克隆Git项目。

第一种,通过其他工具(如:Git Bash)将Git项目克隆到本地,然后使用IDEA直接打开项目。File --> Open...

第二种,使用IDEA从版本库直接导入项目。File --> New --> Project from version control --> Git

我们需要填写Git版本库URL、存储目录

提交代码

我们如果希望文件被Git管理那我们就要将文件进行add操作。

在IDEA中我们只要对某个文件设置一次add,之后就不用在手动进行add了。

文件右键 --> Git --> Add

提交代码时我们使用 文件右键 --> Git --> Commit Directory...进行提交

分支管理

分支管理主要集中在IDEA的右下角操作区。

主菜单功能

New Branch : 从当前分支新建分支。上图就是从master分支创建新的分支。

Checkout Tag or Revision : 使用分支、标签或提交编码,检出一个临时分支。

Local Branches : 本地分支列表。同时显示对应了那个远程分支。

Remote Branches : 远程分支列表。

本地分支菜单

Checkout : 检出这个分支。

Checkout As... : 使用这个分支创建新的分支并检出到新分支。

Compare With... : 使用当前分支与所选分支做代码提交比较。

Rebase Current onto Selected: 在当前分支做变基。(将所选分支提交加入到当前分支)

Checkout with Rebase : 检出所选分支并做变基。(将当前分支提交加入到所选分支)

Merge into  Current: 合并到当前分支(将所选分支合并到当前分支)

Rname:修改所选分支名称

Delete :删除所选分支

远程分支菜单

Checkout As... : 使用远程分支创建一个新的本地分支,并检出这个分支。

Compare With : 使用当前分支与所选分支做代码提交比较。

Rebase Current onto Selected : 在当前分支做变基。(将所选分支提交加入到当前分支)

Merge into  Current: 合并分支(将当前分支与所选分支进行合并)

Delete :删除所选分支

本地分支推送到远程仓库

检出要推送的分支,然后项目右键 --> Git --> Repository --> push

push的时候会有new标签提示会在远程新建分支

标签管理

检出要打标签的分支,然后Git --> Repository --> Tag...

本地标签推送到远程仓库

项目右键 --> Git --> Repository --> push

然后选中底部的Push Tags。我们可以选择推送所有标签还是当前分支标签。

代码拉取、推送

代码拉取项目右键 --> Git --> Repository --> pull

代码推送项目右键 --> Git --> Repository --> push

变基操作

普通变基

选择分支执行变基操作。这里需要注意当前分支为补丁分支,选中的分支为基底分支。也就是说当前分支提交会添加在选中分支提交之后。

合并提交(交互式变基)

在代码没有pull前我们可以在本地分支进行提交的合并。这样会使得远程分支不去关心本地开发过程日志,而使得远程日志干净整洁。

变基前log

找到要合并的第一条log,然后右键选择Interactively Rebase from Here...进行交互式变基

(此选项低版本IDEA可能没有请更新到2018版以上)

除题一条外其他全部选择squash随前面的提交一并提交

编辑交互式变基提交说明。默认显示合并的所有提交的内容,我们也可以添加和修改内容。

变基后日志

查看提交日志

log页签

查看控制台

console页签。在控制台中我们可以看到实际执行的git命令,可以帮助我们查找问题。

储藏工作区

有时我们需要经正在编写的代码临时储藏,然后去修改一些bug,完成bug修改后进行恢复。这时我们可以使用代码储藏。

项目右键 --> Git --> Repository --> Stash Changes

填写储藏名称

这是我们会发现修改的代码不见了。

之后我们要恢复储藏区的内容

项目右键 --> Git --> Repository --> UnStash Changes

选择要恢复的暂存名称并恢复暂存

这时我们发现修改的代码又回来了

提交回退

我们如果想要放弃最近一次提交的内容可以使用提交回退

回退前log

项目右键 --> Git --> Repository --> Reset HEAD...

执行回退(HEAD后面加几个^就回退几次提交)

执行后日志

管理远程仓库地址

项目右键 --> Git --> Repository --> Reotes...

提交应用(挑樱桃)

我们可以使用提交应用的方式,将一次提交应用在其他分支上。

首先我们要切换至需要应用提交的分支上。

然后在log界面找到那次提交,右键 --> Cherry-Pick

Git版本控制 —— IDE工具(IDEA)的更多相关文章

  1. Git版本控制工具学习

    Git代码管理工具学习 分布式管理工具:git 相比较svn它更加的方便,基本上我们的操作都是在本地进行的. Git文件的三种状态:已提交,已修改,以暂存. 已提交:表示文件已经被保存到本地数据库. ...

  2. Git版本控制工具(三)----远程仓库GitHub的使用

    [声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4 ...

  3. git版本控制工具(二)----本地版本库的常用操作

    ​[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/ ...

  4. Git版本控制工具(一)----git的安装及创建版本库

    ​[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/ ...

  5. Git 版本控制工具(学习笔记)

    GIT(分布式) 一.Git 初始版本控制工具 1. 安装Git Ubuntu系统下,打开shell界面,输入: sudo apt-get install git-core  之后回车输入密码,即可完 ...

  6. 使用Git版本控制工具管理GitHub

      使用Git版本控制工具管理GitHu Git是一个分步式的管理系统:只要上传操作得当,所有的都可以相当于是中央服务器,成员代码共享,A写的代码B也有,一般把一个人当做主机,其他人通过该主机拼装代码 ...

  7. git版本控制工具的使用

    目录 git版本管理工具使用 一丶Git的下载与安装 1.windows下的git的下载与安装 2.linux下的git安装 二丶常用命令 三丶Git仓库 1.配置仓库信息 2.仓库的创建于管理 四丶 ...

  8. 几款Git GUI客户端工具

    工欲善其事,必先利其器. 作为一名开发人员,你不可能不知道git,无论你是开发自己的开源项目还是和团队一起进行大规模产品的开发,git都已经是源代码管理工具的首选.当然,那些hardcore deve ...

  9. Git 源代码管理工具

    Git 源代码管理工具 Git基本信息 Git :Git是一个“分布式”的版本控制工具 Git的作者是Linux之父 Linus Benedict Torvolds,当初开发Git仅仅是为了辅助Lin ...

随机推荐

  1. GitHub学习笔记:本地操作

    安装过程略,假设你已经注册好了Github, 已经有了一个准备好的程序.我们的一切工作都是基于Git Shell,与GUI客户端无关. 在使用前你先要配置好config中的几个内容,主要是你自己的个人 ...

  2. Selenium2Lib库之键盘常用关键字实战

    Press Key关键字 按F5 查看Press Key关键字的说明,如下图: Press Key关键字是用于通过键盘模拟由定位器确定的元素的用户按键.‘值’是单个字符,字符串或数值的ASCII码的“ ...

  3. SpringMVC表当重复提交

    最近公司上线,有同志进行攻击,表当防重复提交也没有弄,交给我 ,本人以前也没弄过,知道大概的思路,但是那样实在是太麻烦了,虽然后面试过使用过滤器加拦截器实现,不过还是有点小麻烦. 后来在网上搜索后发现 ...

  4. Redis数据过期和淘汰策略详解(转)

    原文地址:https://yq.aliyun.com/articles/257459# 背景 Redis作为一个高性能的内存NoSQL数据库,其容量受到最大内存限制的限制. 用户在使用Redis时,除 ...

  5. SSM-MyBatis-09:Mybatis中SqlSession的close为什么能造成事务的回滚

    ------------吾亦无他,唯手熟尔,谦卑若愚,好学若饥------------- 经过上几次的查找,笔者我就简单的说一下查找的思路,留给读者自己实践 同样找到sqlsession的实现类,-- ...

  6. Kali Linux虚拟机安装完整安装过程及简单配置(视频)

    点击播放视频 附:视频中出现的两个txt文本,包含了大致的安装与配置过程: 文本1:KaliLinux虚拟机安装和初步配置 Kali Linux虚拟机安装和初步配置 大家好,今天给大家演示一下在VMw ...

  7. sql server按符号截取字符串

    http://www.360doc.com/content/12/0626/13/1912775_220523992.shtml

  8. [爬虫]scrapy框架

    Scrapy介绍 Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架. 可以应用在包括数据挖掘,信息处理或存储历史数据等一系列的程序中. 所谓网络爬虫,就是一个在网上到处或定向抓取数据 ...

  9. 将外部dwg图纸中指定带属性的块插入到当前图纸中

    static void InsertBlock() { //获取要插入的块名 TCHAR str[40]; acedGetString(Adesk::kFalse, _T("\n请输入要插入 ...

  10. 【codeforces 718E】E. Matvey's Birthday

    题目大意&链接: http://codeforces.com/problemset/problem/718/E 给一个长为n(n<=100 000)的只包含‘a’~‘h’8个字符的字符串 ...