IntelliJ IDEA 中集成并使用 Git 图文教程
[](()Github 设置
同样的,我们可以发现 Version Control
中还有一个 Github 选项卡,这里我们可以使用自己的 Github 账号进行登录,即 Log In via Github
,然后就可以直接将我们 Github 上的代码拉取下来了。
![](https://static001.geekbang.org/infoq/c8/c8215b11409f122b93e11fed8cd1e9f8.png)
登陆成功后,则会出现我们 Github 账号的相关信息,如下图。
![](https://static001.geekbang.org/infoq/51/518fd937549d89260090a801b549b456.png)
[](()拉取远程 Git 仓库代码
这里平时可能更多的是将公司的 Git 库中的代码拉取到本地进行协同开发,不过这里没法演示,所以就用 IDEA 从 Github 拉取代码为例,来演示如何从远程 Git 仓库拉取代码。
这里主要有两种方式,第一种是事先通过 Git 工具将代码拉取到本地,然后再通过 IDEA 进行打开;而另一种则是通过 IDEA 直接将代码拉取下来,下面分别演示下这两种操作。
[](()先拉取,再打开
首先找到我们要 Github 仓库,然后复制 Github 仓库路径。
![](https://static001.geekbang.org/infoq/6a/6a74e48c4ef78267a4eee0c722217af1.png)
然后打开终端,使用如下命令克隆到本地。
git clone Githu 仓库地址
git clone https://github.com/cunyu1943/java-programming-instance.git
![](https://static001.geekbang.org/infoq/0f/0ff8163369987eb3ae447d19b3ba46e7.png)
拉取成功后,我们就可以通过 IDEA 打开该项目,依次进入 File -> Open
,然后找到上一步中克隆下来的代码所在路径,即可打开项目。
![](https://img-blog.csdnimg.cn 《一线大厂 Java 面试题解析+后端开发学习笔记+最新架构讲解视频+实战项目源码讲义》无偿开源 威信搜索公众号【编程进阶路】 /img_convert/664e3f5b90852d726a0f2cd5425b1b7e.png)
[](()直接拉取打开
除开上面的方式之外,我们也可以直接通过 IDEA 拉取代码,依次进入 File -> New -> Project from Version Control
,然后这里也有两种方式拉取。
URL 拉取
这里我们将我们在上一部分中所复制的仓库库地址 url 填入 URL
,然后 Version control
选择 Git
,Directory
则是我们要存放该代码的本机路径,后面拉取下来的代码将放在该路径中。
![](https://static001.geekbang.org/infoq/19/19b64e35c88a4b655b257ce47f6706a7.png)
账号拉取
Github 设置部分我们已经登陆了 Github 账号,此时也可以通过 Github 选项,然后找到我们要拉取代码的仓库,这里可以通过最上方的搜索框进行搜索快速定位,然后点击下方的 Clone
即可进行拉取,其中 Directory
同上一种拉取方式,也是我们拉取代码存放的路径。
![](https://static001.geekbang.org/infoq/c9/c9e440b6ca7cc5c710f616ca13fac980.png)
此外,还有 Githu Enterprise
和 Space
两种方式拉取,不过这两种方式更偏向于公司或者组织,一般个人的话是不需要用到这部分的,这里知道就好,使用方法和上述两种方式大同小异。
[](()更新代码
一般在将本地代码提交到远程仓库时,最好先更新下远程仓库的代码到本地,从而避免不必要的冲突。
更新的方式也很简单,可以通过快捷键 Ctrl + T
进行拉取,也可以通过工具栏中的按钮来实现。
![](https://static001.geekbang.org/infoq/b4/b4715a86571050ed80cdf1be570f0a1d.png)
![](https://static001.geekbang.org/infoq/1d/1d449d4dd69124f356dd39b97889368c.png)
更新时有两种方式,一种是 Merge incoming changes into the current brance
,而另一种则是 Rebase the current branch on top of incoming changes
。
其中 Merge
的原理是找到两个分支的祖先 commit
,然后将公共分支最新版合并到自己的分支,形成一个新的 commit
提交,用图表示如下。
![](https://static001.geekbang.org/infoq/8e/8e7a60bae9f4f56e9bde382060e6f59f.png)
Rebase
则是重新基于一个分支进行 commit
,即将当前分支从祖先的 commit
后所提交的 commit
均撤销,将他们放到一个缓存中,然后基于一个分支的后面,将缓存的 commit
按照顺序以一个个新增到该分支后面,用图表示如下,将 4 和 5 所提交的 commit
放到缓存中,然后按顺序将其新增到 6 的后面。
![](https://static001.geekbang.org/infoq/56/561ee4576ca952df79b4ab980baa4a39.png)
而使用 Rebase
和 Merge
的基本原则可以总结如下三条:
下游分支更新上游分支内容时使用
Rebase
上游分支合并下游分支内容时使用
Merge
更新当前分支内容时一定要使用
--rebase
参数
更多关于 Rebase
和 Merge
的区别,可以参考这篇文章:
https://zhuanlan.zhihu.com/p/34197548
除开快捷键和点击工具栏中按钮更新的方式之外,还可以在项目上点击鼠标右键,然后依次进入 Git -> Pull
进行更新。
![](https://static001.geekbang.org/infoq/a0/a0c53eab20d9571b28e48f44e733183b.png)
[](()提交代码
本地进行开发工作后,我们需要将我们的代码提交到远程仓库,此时也可以通过以下两种方式进行。
快捷键
通过快捷键 Ctrl + K
打开代码提交工作区,可以看到文件会被标识成不同的颜色,一般是红色、绿色、蓝色,三者的意义分别代表如下:
红色:表示该文件未加入到版本控制中,比如 Java 项目中的
target
文件夹,这里我们可以在.gitignore
文件中进行配置。绿色:表示该文件是新加入版本控制中的文件,比如我们项目中新建的文件,但此时它还未被提交到远程代码仓库。
评论