本文默认已经安装了git和idea,git服务器使用的是github。

1、在idea中配置git执行路径

选择 【File】→ 【Settings】→ 【Version Control】→ 【Git】,选择git可执行文件的路径(正确配置的情况下,点击Test会弹出git版本的提示,很快会自动关闭,可能看不清楚)
杂记二:IDEA内置git使用教程

2、远程服务器上创建仓库

杂记二:IDEA内置git使用教程
杂记二:IDEA内置git使用教程

3、使用IDEA中Git工具从远程仓库克隆项目

杂记二:IDEA内置git使用教程
一些版本的idea可能使用的是【VCS】–>【Checkout from Version Control】–>【Git】
杂记二:IDEA内置git使用教程
clone完成之后会让你选择是在当前窗口打开(会关闭原有项目),还是新建窗口打开,一般选择在新窗口打开。
杂记二:IDEA内置git使用教程

4、将项目转换成maven项目(非必须)

这一步骤只针对于clone下来的项目时个空项目或者没有目录结构的项目
杂记二:IDEA内置git使用教程
杂记二:IDEA内置git使用教程

5、添加文件到暂存区

当我们创建一个文件的时候,idea就会提醒我们是否将文件加入到暂存区
杂记二:IDEA内置git使用教程
点击Add就会将文件加入到本地暂存区,如果点击了Cancel,也可以使用下面的的方法添加。
杂记二:IDEA内置git使用教程

6、提交到本地仓库

提交的方式有很多种
第一种:VCS–>Commit…
杂记二:IDEA内置git使用教程
第二种:右键单击要提交的文件–>Git–>Commit File
杂记二:IDEA内置git使用教程
第三种:直接点击下图红框位置
杂记二:IDEA内置git使用教程
三种方法弹出的提交页面是相同的
杂记二:IDEA内置git使用教程
提交时可能会出现下面的警告
简单来说就是不同操作系统的换行符不一样,具体参考下面:
LF -UNIX或macOS使用,换行符 \n
CR -Classic macOS使用,换行符 \r
CRLF -Windows使用,换行符 \r\n
杂记二:IDEA内置git使用教程
查看自己的换行符,一般在idea的右下角
杂记二:IDEA内置git使用教程
我的是CRLF,所以我直接点击Commit As Is。

提交完成的文件为白色
杂记二:IDEA内置git使用教程

7、推送到远程仓库

杂记二:IDEA内置git使用教程
如果是第一次推送会要求登录,这里我使用token登录
杂记二:IDEA内置git使用教程
杂记二:IDEA内置git使用教程
杂记二:IDEA内置git使用教程

杂记二:IDEA内置git使用教程
杂记二:IDEA内置git使用教程
idea提示push成功
杂记二:IDEA内置git使用教程
刷新远程仓库
杂记二:IDEA内置git使用教程

8、新建分支与分支切换

下面两种方式都可以新建分支

杂记二:IDEA内置git使用教程
点击New Branch来创建新分支

杂记二:IDEA内置git使用教程
输入分支名称,如果勾选了Checkout branch就会立即切换到新分支

杂记二:IDEA内置git使用教程
上一步将当前分支切换到了1.0,需要切换回master,可以使用如下方法
杂记二:IDEA内置git使用教程

9、分支合并

现在假设有master、develop、fixbug三个分支,master为主分支已经发布了一个版本1.0(有bug),develop为开发分支(正在开发2.0功能),fixbug用于修复master上的bug。

首先创建develop和fixbug分支,这两个分支都从master创建,方法见8。然后将两个分支都push到远程仓库。
杂记二:IDEA内置git使用教程
现在切换到fixbug(方法见8),修复bug。然后提交并推送(方法见6,7)

杂记二:IDEA内置git使用教程
然后切换到develop(方法见8),开发新功能添加D.java。同样提交并推送(方法见6,7)

杂记二:IDEA内置git使用教程
现在合并master和fixbug完成master分支上的bug修复。

杂记二:IDEA内置git使用教程
杂记二:IDEA内置git使用教程
此时本地master分支中的A.java就与fixbug中的合并了,然后将master分支推送到远程仓库即可。
杂记二:IDEA内置git使用教程
同时还需要将fixbug合并到develop分支,这样develop开发出来的新功能中就不会有老bug。

10、冲突解决

冲突的场景 :

  • 多个分支合并的时候(下边演示);
  • 在一个分支上拉取或推送远程文件时;

在fixbug分支的B.java添加如下内容并推送到远程仓库。
杂记二:IDEA内置git使用教程
在develop分支的B.java添加如下内容并推送到远程仓库。
杂记二:IDEA内置git使用教程
然后在develop分支上合并fixbug分支,弹出如下窗口。
杂记二:IDEA内置git使用教程
这里选择Merge,弹出Merge Revisions窗口
杂记二:IDEA内置git使用教程
杂记二:IDEA内置git使用教程
然后将结果推送到远程仓库即可
杂记二:IDEA内置git使用教程

11、历史提交记录查看

查看文件的历史提交记录
杂记二:IDEA内置git使用教程
杂记二:IDEA内置git使用教程
查看所有分支的提交记录

杂记二:IDEA内置git使用教程

12、版本发布

杂记二:IDEA内置git使用教程
杂记二:IDEA内置git使用教程
杂记二:IDEA内置git使用教程
远程仓库中就有tag了
杂记二:IDEA内置git使用教程

13、不同版本对比

对单个代码文件的比较,点击文件,右键弹出的菜单选项 → 【Git 】→ 【compare with…】,几个比较方式如下:

  • Compare with the Same Repository Version 当前文件与服务器同一分支上该文件版本的内容进行比较
  • Compare with 当前文件与文件各次提交的版本做比较
  • Compare with Branch 当前文件与其他分支上该文件版本进行比较
    杂记二:IDEA内置git使用教程
    杂记二:IDEA内置git使用教程

14、版本回退

假设我修改了E.java文件而且已经提交(未推送),现在我需要回退到E未修改时。

杂记二:IDEA内置git使用教程
杂记二:IDEA内置git使用教程
杂记二:IDEA内置git使用教程
杂记二:IDEA内置git使用教程
假设我修改了E.java文件而且已经提交(已推送),现在我需要回退到E未修改时。
杂记二:IDEA内置git使用教程
此时进行与未推送时的相同操作

杂记二:IDEA内置git使用教程
需要推送到远程,可是直接推送会弹出如下窗口
杂记二:IDEA内置git使用教程
点击Cancel,使用Terminal强制提交

杂记二:IDEA内置git使用教程
杂记二:IDEA内置git使用教程

相关文章: