4.1 在IDEA中配置Git
安装好IntelliJ IDEA后,如果Git安装在默认路径下,那么idea会自动找到git的位置,如果更改了Git的安装位置则需要手动配置下Git的路径。
选择File→Settings打开设置窗口,找到Version Control下的git选项:

选择git的安装目录后可以点击"Test"按钮测试是否正确配置

4.2 在IDEA中使用Git
本章节我们会学习在IDEA中使用Git进行版本管理,具体包括:
在IDEA中创建工程并将工程添加至Git 将文件添加到暂存区 提交文件 将代码推送到远程仓库 从远程仓库克隆工程到本地 从远程拉取代码 版本对比 创建分支 切换分支 分支合并
4.2.1在IDEA中创建项目并将项目添加至Git
1)创建项目
在idea中创建一个工程,例如创建一个java工程,名称随意,比如名称为git_project如下图所示:

2)创建本地仓库
在菜单中选择"vcs"→Import into Version Control→Create Git Repository...

选择工程所在的上级目录。本例中应该选择Repositorys目录,然后点击"OK"按钮,在工程的上级目录创建本地仓库,那么Repositorys目录就是本地仓库的工作目录,此目录中的工程就可以添加到本地仓库中。也就是可以把git_project工程添加到本地仓库中。

将项目添加至Git管理后,可以从IDEA的工具栏上看到Git操作的按钮(版本不同,图标可能不同)

4.2.2 将项目添加到暂存区

4.2.3 提交项目到本地仓库
点击IDEA的工具栏上看到Git操作的"commit"按钮。


也可以在idea中打开版本控制面板,查看版本提交的日志信息和进程信息等...
Log面板:

4.2.4 将代码推送到远程仓库
在github上创建一个仓库然后将本地仓库推送到远程。在工程上点击右键,选择git→Repository→push,或者在菜单中选择vcs→git→push

点击"Define remote"链接,配置https形式的URL,git形式的无法通过。然后点击OK

点击"push"按钮就讲本地仓库推送到远程,如果是第一次配置推送需要输入github的用户名和密码。
注:如果idea提示:Push to origin/master was rejected。下图所示:

是因为初始化的远端仓库和本地的仓库内容不一致导致了这个问题。则需要以下解决方案:
解决办法:可以打开idea的Terminal(在idea的左下角)

输入:git pull origin master --allow-unrelated-histories 告诉系统我允许合并不相关历史的内容
然后再push就可以了。成功页面:

远程仓库查看已提交的项目:

4.2.5 从远程仓库克隆工程到本地
关闭工程后,在idea的欢迎页上有"Check out from version control"下拉框,选择git

填写本地存放项目的目录,远程仓库的地址:

【备注】点击"yes"可以直接创建好远程仓库下载下来的项目,环境都搭建好了。后期操作更方便哦。步骤如下图:

然后一下下一步,下一步,finsh即可
查看本地目录,可以发现已经从远程仓库中拉取项目了:

4.2.6 更新代码到本地仓库及远程仓库


4.2.6 从远程仓库拉取代码
如果需要从服务端同步代码到本地则可以使用工具条中的"update"按钮


