1.Git的介绍
Git是Linus开发的一个分布式的版本控制工具
- 正常的集中式只有远程仓库,分布式就是不但有远程仓库,也有本地仓库
- Git基于快照的特性,速度相对于一般的版本控制工具快
- Git火,国内的Gitee,GitHub,GitLab都是基于Git的远程仓库
2.Git的下载安装
下载Git安装包:https://git-scm.com/
下载之后傻瓜式安装,注意在安装的过程中目录中不要出现中文和空格
安装后在任意的位置右击鼠标,git bash here,如下图:
3.Git的架构
ps: 这里的每一个区的概念在下面的git命令中穿插介绍
4.Git的常用的命令
①在工作区生成本地仓库
git init # 在当前目录生成本地仓库
②将工作区内容添加到暂存区
git add . # 将当前目录下所有内容添加到暂存区
③将暂存区内容提交到分支上,生成一个提交点
git commit -m "提交的信息" # 将暂存区内容提交到当前分支
④查看工作区,暂存区,分支提交点的异同
git status # 先查看工作区和暂存区, 再查看暂存区和分支的提交点
⑤查看当前提交点和之前提交点的信息
git log
⑥创建一个临时分支,指向指定的提交点,查看指定提交点代码
git checkout 提交点标识 # checkout命令的本质是切换分支
# 当前checkout做了三个事情,1、创建临时分支 2、临时分支指向提交点 3、切换到这个临时分支
5.Git的分支
分支就是由多个提交点组成的内容
每个分支都有一个指针,这个指针始终指向着最后一个提交点
①查看当前本地仓库有哪些分支
git branch
②切换分支
git checkout 分支名 (和上面的命令不冲突,切换的时候如果没有,就是创建临时的分支)
③手动创建分支
git branch 新分支名称
# 创建新分支时,新分支会指向当前分支提交点
④当构建多个分支,需要将多个分支合并时
# 需要让当前分支,合并其他分支
git merge 其他分支
# 如果合并时,出现冲突问题
# 1. 与同事沟通,根据提示,选择处理方案
# 2. 冲突过多,无法处理,取消这次合并 git merge --abort
# 如果合并时,没有冲突,自动合并完成!
这些命令在我们的工作中很少使用,因为我们有强大的idea工具,idea帮我们将这些东西都已经集成,所以我介绍的重点在于具体的使用,而具体的命令不会详细的介绍
6.idea操作Git
1.配置idea中的Git(按照图中的红色标记顺序执行即可)
2.采用idea中的git管理maven项目
创建maven项目后,需要给maven项目中添加.gitignore文件,如下图:
文件中的内容,百度一下就可以拿到,解释一下添加这个文件的原因:因为我们的idea的版本不一样,我们的开发环境和一些其他的配置都不同,那么我们如果将这些东西也一起上传到git仓库中,其他人在拉取到我们代码后,并不能马上使用,所以通过这样的方法,在提交的时候只会上传代码,一些idea的配置不会上传
3.初始化git仓库
4.将工作区内容添加到暂存区并且提交到本地仓库分支
5.将本地的分支提交到远程仓库_push(以及拉取远程仓库的代码_pull)
7.工作中Git的真实使用
1.正常公司使用的GitLab,在自己公司内部的服务器上搭建的,只有通过公司的内网才可以访问到,通常第一天入职,公司都会为我们注册一个git账号,我当时登录成功后,需要配置一个SSH Key,具体的情况不同可能有所差别(因为是内网配置,无法截图),配置成功后,需要你的组长为你的git账号开通权限.
2.有了权限以后,如果你的组长为你分配了一个任务,首先他会给你一个git地址,然后按照下图点击
点击了git以后,会出现下面的界面
然后在上面复制git地址,下面是你拉取的代码的在硬盘的位置,可随意更改,如果有项目权限,就会拉取成功
说一个工作中的小问题:
首先有这样一个场景,你和你的同事同时开发一个项目(在实际开发的时候需要创建自己的分支),
分别负责不同的模块,但是彼此间存在调用,同时开始编写,当你们同时写完了,他说他提交到他自己的分支上了,你拉取一下,然后在本地测试一下看能否调用通
此时需要注意的是,你拉取到本地仓库的代码在远程仓库中已经发生变化了,因为你的同事已经提交了,所以此时你想要拉取他提交的代码,首先你需要更新一下远程仓库到本地,所以你需要先切换到主分支,按照下图点击,将主分支变化的更新到本地仓库
更新完成后,你可以切换到自己的分支,然后在所有的分支中找到你同事开发的分支,然后合并,点击他的分支就会出现下图,按照下图点击就可以获取到同事的代码
当然在合并的时候,可能出现代码的冲突,这时切记不要直接合并,一定要找到同事进行沟通,然后决定留下谁的(重点)