Git简介
Git 是⼀种分布式版本控制系统,它可以不受⽹络连接的限制,加上其它众多优点,⽬前已经成为程序开发⼈员做项⽬版本管理 时的⾸选,⾮开发⼈员也可以⽤ Git 来做⾃⼰的⽂档版本管理⼯具。
2013年,淘宝前端团队开始全⾯采⽤ Git 来做项⽬管理,Git 的api很多,但其实平时项⽬中90%的需求都只需要⽤到⼏个基本的功能即可
git本地工作区域
请注意,接下来要讲的概念非常重要。
对于任何一个文件,在 Git 内都只有三种区域:工作区,暂存区和本地仓库。
工作区:表示新增或修改了某个文件,但还没有提交保存;
暂存区:表示把已新增或修改的文件,放在下次提交时要保存的清单中;
本地仓库:文件已经被安全地保存在本地仓库中了;
IDEA配置Git
这里我们创建一个简单的java项目
idea上的文件颜色变为红色,则表示已经初始化好了本地库,但是文件还没有添加到暂存区当中,处于工作区。
使用idea提交到本地库的代码,颜色会变为正常的颜色
另外:
我们也可以单独的将某个文件提交到暂存区,如下:
提交到 暂存区的文件 文件颜色在idea上是绿色的。
文件颜色:
红色:工作区文件
绿色:暂存区文件
正常颜色:本地库文件
蓝色:修改了本地库文件
细节(以下项目案例和上面的不同,大家可以看成是同一个项目。主要看操作过程):
这个时候,我们将这个项目下的所有文件进行提交到 本地库当中
在 IDEA 的左下角,点击 Version Control,然后点击 Log 查看版本
右键选择要切换的版本,然后在菜单里点击 Checkout Revision
创建分支
创建新的分支
切换分支
在 IDEA 窗口的右下角,切换到 master 分支
然后在 IDEA 窗口的右下角看到了 master,说明 master 分支切换成功。
合并分支
1 正常情况下合并分支:
首先我们在新的分支下添加一些代码,并提交到本地库
将hot-fix分支的代码合并到主分支上的操作:
如果代码没有冲突,分支直接合并成功,分支合并成功以后,代码自动提交,无需手动提交本地库。
2 合并分支发生冲突,解决冲突:
以上主分支和hot-fix分支的内容是一样的。在此基础上
首先 在hot-fix分支上,写一些代码,并且提交到本地库当中,再切换到主分支上,相同位置写一些代码,并提交到本地库当中。
hot-fix分支:
主分支master
进行合并分支操作:
我们现在站在 master 分支上合并 hot-fix 分支,就会发生代码冲突。
合并冲突解决之后,提交代码到本地库
概念:
IDEA构建项目的特殊文件与class文件目录这些都是 IDEA 为了管理我们创建的工程而维护的文件,和开发的代码没有直接关系。最好不要在 Git 中进行追踪,也就是把它们忽略。
*.iml以iml后缀结尾文件
classes目录下所有文件
targe目录下所有文件
为什么要忽略特定文件呢?
同一个团队中很难保证大家使用相同的 IDEA工具,而 IDEA工具不同时,相关工程特定文件就有可能不同。如果这些文件加入版本控制,那么开发时很可能需要为了这些文件解决冲突。
指定忽略的置文件或目录:
方式1:
忽略指定文件,在IDEA列表中不显示出来,就不会被选择。
打开Setttings →Editor → File Types →Ignore files and folders下输入忽略文件
方式2(我的这个版本将该功能取消):
指定忽略文件或目录Settings→VersionControl→IgnoredFiles→+再刷新一下,就变成黄绿色梦
方式3:
安装.ignore插件来忽略文件
重启完,在项目上右键->New ->.ignore file ->.gitignore file(Git)
选择 NO, 不加入到Git管理中
首先我们先在码云上创建一个远程库
推送操作
项目右键→Git→Repository→Push…定义远程库信息,点击Define remote
定义远程库信息,点击Define remote
查看码云远程库,发现推送成功
克隆远程仓库项目到本地
操作步骤:
项目右键→ Git → Repository → Pull
克隆,最后点Clone
克隆成功
拉取远程库代码到本地
解决冲突
当Push时,出现以下窗口,说明有冲突,需要合并操作,点击merge进行合并
选择处理方式, 选择Merge…
如下图,左边是本地库,中间是最终合并结果,右边是远程仓库
合并完成后,点击Apply
然后再推送远程库