IntelliJ IDEA 中集成并使用 Git 图文教程
[](()Github 设置
同样的,我们可以发现 Version Control
中还有一个 Github 选项卡,这里我们可以使用自己的 Github 账号进行登录,即 Log In via Github
,然后就可以直接将我们 Github 上的代码拉取下来了。

登陆成功后,则会出现我们 Github 账号的相关信息,如下图。

[](()拉取远程 Git 仓库代码
这里平时可能更多的是将公司的 Git 库中的代码拉取到本地进行协同开发,不过这里没法演示,所以就用 IDEA 从 Github 拉取代码为例,来演示如何从远程 Git 仓库拉取代码。
这里主要有两种方式,第一种是事先通过 Git 工具将代码拉取到本地,然后再通过 IDEA 进行打开;而另一种则是通过 IDEA 直接将代码拉取下来,下面分别演示下这两种操作。
[](()先拉取,再打开
首先找到我们要 Github 仓库,然后复制 Github 仓库路径。

然后打开终端,使用如下命令克隆到本地。
git clone Githu 仓库地址
git clone https://github.com/cunyu1943/java-programming-instance.git

拉取成功后,我们就可以通过 IDEA 打开该项目,依次进入 File -> Open
,然后找到上一步中克隆下来的代码所在路径,即可打开项目。

[](()直接拉取打开
除开上面的方式之外,我们也可以直接通过 IDEA 拉取代码,依次进入 File -> New -> Project from Version Control
,然后这里也有两种方式拉取。
URL 拉取
这里我们将我们在上一部分中所复制的仓库库地址 url 填入 URL
,然后 Version control
选择 Git
,Directory
则是我们要存放该代码的本机路径,后面拉取下来的代码将放在该路径中。

账号拉取
Github 设置部分我们已经登陆了 Github 账号,此时也可以通过 Github 选项,然后找到我们要拉取代码的仓库,这里可以通过最上方的搜索框进行搜索快速定位,然后点击下方的 Clone
即可进行拉取,其中 Directory
同上一种拉取方式,也是我们拉取代码存放的路径。

此外,还有 Githu Enterprise
和 Space
两种方式拉取,不过这两种方式更偏向于公司或者组织,一般个人的话是不需要用到这部分的,这里知道就好,使用方法和上述两种方式大同小异。
[](()更新代码
一般在将本地代码提交到远程仓库时,最好先更新下远程仓库的代码到本地,从而避免不必要的冲突。
更新的方式也很简单,可以通过快捷键 Ctrl + T
进行拉取,也可以通过工具栏中的按钮来实现。


更新时有两种方式,一种是 Merge incoming changes into the current brance
,而另一种则是 Rebase the current branch on top of incoming changes
。
其中 Merge
的原理是找到两个分支的祖先 commit
,然后将公共分支最新版合并到自己的分支,形成一个新的 commit
提交,用图表示如下。

Rebase
则是重新基于一个分支进行 commit
,即将当前分支从祖先的 commit
后所提交的 commit
均撤销,将他们放到一个缓存中,然后基于一个分支的后面,将缓存的 commit
按照顺序以一个个新增到该分支后面,用图表示如下,将 4 和 5 所提交的 commit
放到缓存中,然后按顺序将其新增到 6 的后面。

而使用 Rebase
和 Merge
的基本原则可以总结如下三条:
下游分支更新上游分支内容时使用
Rebase
上游分支合并下游分支内容时使用
Merge
更新当前分支内容时一定要使用
--rebase
参数
更多关于 Rebase
和 Merge
的区别,可以参考这篇文章:
https://zhuanlan.zhihu.com/p/34197548
除开快捷键和点击工具栏中按钮更新的方式之外,还可以在项目上点击鼠标右键,然后依次进入 Git -> Pull
进行更新。

[](()提交代码
本地进行开发工作后,我们需要将我们的代码提交到远程仓库,此时也可以通过以下两种方式进行。
快捷键
通过快捷键 Ctrl + K
打开代码提交工作区,可以看到文件会被标识成不同的颜色,一般是红色、绿色、蓝色,三者的意义分别代表如下:
红色:表示该文件未加入到版本控制中,比如 Java 项目中的
target
文件夹,这里我们可以在.gitignore
文件中进行配置。绿色:表示该文件是新加入版本控制中的文件,比如我们项目中新建的文件,但此时它还未被提交到远程代码仓库。
评论