day09-git-idea2020之前版本
15.IDEA中使用GIT-集成GIT
目标
在IDEA中集成GIT,初始化工作区及设置忽略文件
内容
集成
在idea中的file菜单中选中settings

弹出settings后在搜索中输入"git",选择Git,指定你的安装的git.exe目录

校验git是否集成完成,点击test,弹出校验窗口,点击git Executed successed 成功则表示集成完成

创建工程
创建一个普通的java工程git-project项目,结构如下:

基本操作-初始化工作区
点击VCS --> Import into Version Control --> Create Git Repository

选择管理的文件夹,这里我现在的为gitProject文件夹

点击左下角,Version control菜单,此时gitProject下所有的文件都变成棕色,说明我们的工作区添加完成了

忽略文件类型
从version control中我们可以看到有一部分文件,我们是不需要提交到本地仓库中去的

那我们怎么做呢?可以拷贝"资料"中.gitignore文件,到gitProject的根目录:

这个时候你会发现,多余的不需要提交的文件类型被忽略了。如果有新的要忽视的文件类型,你可以在.gitignore中添加

小结
IDEA集成GIT时要指定哪个文件
git.exe
忽略文件有什么作用
让git只针对于我们项目主要文件进行维护
16.IDEA中使用GIT-基本操作-add与commit 掌握
目标
在IDEA中实现工作区提交缓存区与缓存区提交本地仓库操作
内容
工作区提交暂存区 add
选中gitProject项目,右键

可以看到Version control中的文件颜色由棕色变成的绿色

暂存区提交本地仓库 commit
点击右下角Version control面板中,选中你要提交的文件,这里我都需要提交,使用全部选中

点击鼠标右键

选中commit:

点击Commit

再次确定,点击Commit

17.IDEA中使用GIT-基本操作-差异化比较
目标
在IDEA中完成差异化比较
内容
工作区与本地仓库比较
在Version Control中选中HelloWorld.java右键:



点击左下角Version Control--->log,就可以查看提交记录

18.IDEA中使用GIT-基本操作-版本回退及撤消
目标
在IDEA中完成版本回退以及撤消操作
内容
制造问题
选择HelloWorld.java,提交刚刚修改的内容到本地仓库中:

填写备注,然后点击commit:

在左下角Version Control中查看log

在HelloWorld.java中添加

提交到本地仓库

在左下角version Control中查看log

可以看出此时:我们一共提交3次,下面我们来进行版本的回退
本地仓库回退撤消
在右下方Version Control点击log,此时我们可以看到3个提交的版本

现在我们在本地仓库中回退到第二次提交,选择第二次提交的标记,右键

选择Hard


工作区撤消
当我们在工作区编辑代码时候,希望撤销未提交本地仓库的代码时候,在Version Control中右键

弹出如下窗口

点击revert,代码则撤销

说明:针对上述工作区的代码撤消,有同学会有疑问,我直接删除不就完了吗,为什么这么麻烦,其实我们在实际开发中代码会很多,那么当你书写了很多不同地方的代码,以至于你都忘记哪些是新编写的代码了,那么删除是一件很痛苦的事情,并且容易误删,所以使用工作区撤销更加方便。
19.IDEA中使用GIT-远程仓库-创建与关联远程仓库
目标
gitee中创建远程仓库并在IDEA中关联远程仓库
内容
创建仓库
新建:git-project-sk

创建步骤省略,如果忘记,可以查看
13.GIT远程仓库介绍与码云仓库注册创建这个章节关联远程仓库
VCS-->Git--->Remotes

点击之后弹出窗口,点击+

复制git-project-sk 的https地址


20.IDEA中使用GIT-远程仓库-拉取、推送、克隆远程仓库
目标
在IDEA中完成拉取、推送、克隆操作
内容
拉取:将码云上的内容拉取到本地
选择git-project-sk根目录,右键

弹出如下窗口,点击刷新


因为是首次拉取代码会报如下错误


之所以拉取不成功,是因为我们忽略文件与远程仓库的中的忽略文件冲突,这边我们选择合并



重新拉取代码:


拉取完成后我们可以看见远程仓库中的文件已经来到本地仓库

推送:将本地文件上传到码云上面


推送成功提示

这时候去码云上查看:

我们的本地代码就推送到了远程仓库
克隆 掌握
复制码云上仓库地址

在git-project-sk从远处git上克隆项目:











导入完成,如下:

21.IDEA中使用GIT-分支-创建、合并、删除分支
目标
在IDEA中完成分支创建、合并、删除操作
内容
创建分支

创建的同时切换分支:

查看当前分支

合并分支
编辑App.java,需要注意右下角当前分支为dev

提交缓存区代码到本地仓库上的dev分支上

查看version control中的log,发现当前在dev环境上

切换回本地master分支

切换完成:

合并dev提交到master分支

删除分支

本地分支中就不会有dev分支了:

22.IDEA中使用GIT-版本冲突
目标
在IDEA中解决版本冲突
内容
终于到达了用Git最让人讨厌的地方了,处理版本冲突。先说一下为什么会出冲突,如果一个用户连续对一个文件提交多个版本,其实每一个版本都是基于上一个版本的基础上修改的,这样就没有问题了。
但是当多个用户对同一个文件交叉修改的时候就尴尬了。A修改完提交一个,B修改完又提交一个,这个时候A修改完提交,问题来了,如果A提交成功,那么就相当于忽略了B提交的内容。这个时候就要强制你去处理一下这个问题,这就是我们所说的冲突问题。
制造冲突

在码云中对App.java 做如下编辑


在IDEA中拉取代码

这时候App的类变红色,且弹出窗口,需要手动进行合并

解决冲突

选择主干




提交远程仓库

特殊错误
点击最上面的时候进行代码拉取的时候

IDEA git 拉取项目时报 No tracked branch configured for branch master or the branch doesn't exist的提示
选择本地工作空间右键



输入:
命令: git branch --set-upstream-to=origin/master
IDEA中再次拉取

