IntelliJ IDEA(八) :git的使用

Stella981
• 阅读 528

项目管理离不开版本控制,目前主流版本控制工具大概就是SVN和Git,至于两者有啥区别这里就不详细介绍了,如果有不明白的可以上网查资料,后期如果有机会我再开篇栏目细说,而且现在市场上Git的使用率已经远远高于SVN。我们在用IDEA开发项目的时候如何熟练使用Git来控制代码版本呢?

一、安装Git

使用Git当然需要先安装Git,安装过程就不详细说明了,按装好之后,打开IDEA进入设置界面(可以直接点击工具栏上的IntelliJ IDEA(八) :git的使用 ,也可以通过快捷键 Ctrl + Alt + S ),搜索git,界面如下:

IntelliJ IDEA(八) :git的使用

我们可以看到Git是在Version Control选项卡里,里面还有个GitHub,你可以在里面配置自己GitHub的账号和密码,然后可以直接将GitHub上的代码拉下来。更多内容可以参考前期关于Settings的文章。

继续说Git,Path to Git executable就是我们的本地Git安装路径中bin目录下的git.exe,路由完路径后点击Test按钮,如果正确安装且路径正确,那么会弹出如下对话框,表示配置成功:

IntelliJ IDEA(八) :git的使用

二、远程拉取Git库代码

我们经常会将公司Git库或GitHub上的代码拉取到本地来开发,我们在IDEA中如何拉取呢?其实有两种方式可以达到我们的目标,我们以GitHub为例:

**1.**先通过git工具将代码拉取到本地,然后再通过IDEA打开。

复制路径

IntelliJ IDEA(八) :git的使用

克隆到本地

lq@DESKTOP-BHJ6UD2 MINGW64 /e/mygit/20180226 (master)
$ git init
Reinitialized existing Git repository in E:/mygit/20180226/.git/

lq@DESKTOP-BHJ6UD2 MINGW64 /e/mygit/20180226 (master)
$ git clone https://github.com/noobgod/designPattern.git
Cloning into 'designPattern'...
remote: Counting objects: 73, done.
remote: Total 73 (delta 0), reused 0 (delta 0), pack-reused 73
Unpacking objects: 100% (73/73), done.

拉取成功,路径在本地E:/mygit/20180226,在IDEA中open该路径下的项目,按步骤操作即可。

IntelliJ IDEA(八) :git的使用

**2.**直接通过IDEA将代码拉取下来,推荐这种,因为方便快捷。

 IntelliJ IDEA(八) :git的使用

按照上图方式选择之后,里面有多个可选项,我们选择Git,会弹出一个对话框,点击Clone按钮即可。

IntelliJ IDEA(八) :git的使用

三、更新(update)

我们在提交代码前最好先更新下远程仓库的代码到本地仓库,这样可以减少不必要的冲突,更新update可以直接通过快捷键 Ctrl + T ,也可以通过工具栏上按键来实现IntelliJ IDEA(八) :git的使用 ,分别是update,commit,compare with the same respository version。这里我们选择update。

IntelliJ IDEA(八) :git的使用

当然也可以右键项目-->选择Git-->Respository-->pull来实现。

四、提交代码(commit and push)

我们在IDEA中开发好自己的代码之后如何提交到远程仓库呢?右键项目-->选择Git

IntelliJ IDEA(八) :git的使用

1.Commit Directory:commit代码(将stage区的暂存文件提交到当前分支的本地仓库,并清空stage区),也可以push代码(把本地仓库的文件同步到远程仓库)。

 IntelliJ IDEA(八) :git的使用

在IDEA中,我们会看到文件被标识着不同颜色:红色,绿色,蓝色。它们分别代表什么意思呢?

红色:未被版本控制的文件,即未添加到版本控制的文件,例如我们添加到ignore中的文件。

绿色:新加入版本的文件,即我们新创建的文件,还未提交到远程仓库。

蓝色:修改过的文件,即远程仓库中已有该文件,我们这次对它进行了修改,但是还未提交。

Commit对应Git的Commit命令,有时候我们只希望commit到本地仓库暂时还不想push则可以通过此方法。如果commit完之后我们还需要push到远程仓库,这时候需要我们再右键项目-->选择Git-->Respository-->push。

想实现单纯的commit功能,我们还可以通过快捷键 Ctrl + K ,亦或通过工具栏按钮IntelliJ IDEA(八) :git的使用

Commit and Push也就是Commit和push,我们可以直接在这里commit到本地仓库之后,再push到远程仓库。

2.Add:把本地文件从工作目录添加到本地仓库的stage区,对应Git的Add命令。

3.Compare with Branch…:与远程分支比较。我们提交前可以通过此功能比较下我们工作目录中代码和远程分支代码的异同。

4.Show History:查看历史修改版本记录。

5.Revert:回滚,会将你的本地修改回滚。

6.Repository:各种仓库命令。

 IntelliJ IDEA(八) :git的使用

五、合并(Merge)

在开发中难免会遇到多人修改同一个文件,造成版本冲突,这时候如果需要程序正常运行并且确保功能完整就需要开发人员手动解决这些冲突,并将代码合并,得到最终一致性的代码最后再push到远程。

而这一块往往对很多人来说是最头疼的,操作不当可能会造成代码紊乱造成事故,其实理解了原理,熟练之后其实也没那么复杂。

IntelliJ IDEA(八) :git的使用

这里需要介绍的内容蛮多而且需要细说, 如果关心这块的话可以关注下,后续不定期的更新添加和补充完善。

六、分支管理

分支管理我们就需要用到IDEA底部的状态栏了。

IntelliJ IDEA(八) :git的使用

在这里我们可以切换分支,新建分支,checkout分支代码,compare分支代码等等。

IntelliJ IDEA(八) :git的使用

点赞
收藏
评论区
推荐文章
blmius blmius
2年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
前端尾随者 前端尾随者
2年前
sourceTree 添加 ssh key 方法
1.使用git客户的生成公私钥:id\rsa、id\rsa.pub1.1设置Git的username和email:$gitconfigglobaluser.name"xxx"$gitconfig\globaluser.email"xxx.mail@xxx.com"1.2.生成SSH密钥过程:1.2.1.检查是不是已经存在密钥(
Jacquelyn38 Jacquelyn38
2年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
Wesley13 Wesley13
2年前
11月14日任务
一、安装Git  \如果你已经安装好了Git,可以忽略这一步  CentOS安装Git:yuminstallgit  查看Git版本信息:gitversion  配置Git用户信息:gitconfigglobaluser.name"woider"gitconfigglob
Stella981 Stella981
2年前
Linux上安装git并在gitlab上建立对应的项目
1.CentOS上面安装git我所用的CentOS为CentOS6.5,其他版本没有测试。yuminstallgit 安装之后查看git版本信息gitversion2.配置git信息gitconfigglobaluser.name"yourname"gitconfigglobaluser.em
Easter79 Easter79
2年前
Twitter的分布式自增ID算法snowflake (Java版)
概述分布式系统中,有一些需要使用全局唯一ID的场景,这种时候为了防止ID冲突可以使用36位的UUID,但是UUID有一些缺点,首先他相对比较长,另外UUID一般是无序的。有些时候我们希望能使用一种简单一些的ID,并且希望ID能够按照时间有序生成。而twitter的snowflake解决了这种需求,最初Twitter把存储系统从MySQL迁移
Wesley13 Wesley13
2年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Wesley13 Wesley13
2年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
Python进阶者 Python进阶者
3个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这