文章目录
- 10.分支操作-分支介绍(掌握)
- 目标
- 内容
- 小结
- 11.分支操作-分支创建与切换
- 目标
- 内容
- 小结
- 12.分支操作-分支合并与删除
- 目标
- 内容
- 小结
- 13.GIT远程仓库介绍与码云仓库注册创建
- 目标
- 内容
- 小结
- 14.GIT远程仓库操作-关联、拉取、推送、克隆(不用刻意记住命令)
- 目标
- 内容
- 小结
10.分支操作-分支介绍(掌握)
目标
能说分支作用
内容
我们现在使用Git可以简单理解为阶段性的使用Git保存一下自己写的代码,每次提交形成一个版本信息。但是你能想象出当一个团队所有人提交的版本信息汇集到一起后是什么样子吗?那版本的数量是数以千计的。尽管Git提供了一系列的操作帮助我们完成版本的操作,但是最终架不住版本太多看着乱啊。
比如说张三是一个成熟的开发者,他做完一个模块提交一个版本,李四是一个入行一年的开发者,他做完一个功能提交一个版本,这都是可以接受的,你要碰到王五这种刚刚入行的,他恨不得一个文件提交一个版本,甚至写一个方法就提交一个版本,那Git中管理的版本真的就要数以万计了。
其实理想的情况应该是这样的,张三开发功能A,在A没有完全制作完成之前不要提交版本,等做完了再一次性提交所有的文件。这样每一个版本都是具有非常高的价值的,不会出现大量无效的提交。什么叫无效提交?你一个模块8个类配合在一起工作,你写完一个类提交一个版本,回头不管是回滚也好,对版本进行管理也好,单独一个类自己不能构成一个完整的开发状态,你回滚到这个版本你发现不能用,再换一个还是缺文件,这就让人很崩溃了。
但是作为开发者来说,我打版本也是为了自己用的方便,我写点备份一点,看上去也很合理。这个时候就提出了一个新的需求,能不能我自己提交自己专用的版本,而不要和项目组的核心代码掺和在一起呢?这个功能必须有,这就是下面要说的分支。
那么在说分支前,我们说一下之前的提交到底是什么?
提交的本质:记录仓库中一组文件的变化信息(增、删、改)
分支是什么?
分支就是多次提交串起来的一条线
场景:问题背景:要开发一个新功能,又不想打扰目前分支(main)的功能开发,于是
可以看到 main 分支的开发并不会停止,可以继续进行 c4 这个功能的开发,而 new 分支可以开发新功能 c5,同样不会影响 main
等 new 分支的功能开发测试没有问题了,main 也想要 new 的代码怎么办?
可以使用 merge 命令将 new 分支的变动合并至 main 分支,此时的 c6 中既包含了 c4 以来的修改,也包括了 c5 的修改,这时如果觉得 c5 已经没用了,可以将它删除
我们分支讲解主要包含
- 创建分支
- 切换分支
- 合并分支
- 查看分支
- 删除分支
小结
- 根据自己的理解说一下分支是什么,它有什么作用
- 分支就是多次提交组成的一条线
- 作用:可以让我们在团队开发时更加方便
11.分支操作-分支创建与切换
目标
掌握分支创建与切换
内容
-
创建分支
分支创建示意图:
命令: git branch 分支名 创建dev分支 git branch dev 注意:分支名字随便书写,名字最好达到见名知意,张三---》zhangsan
-
分支切换
命令: git checkout dev 切换dev分支
编辑readme.txt,添加“我是dev提交的代码”
从工作区提交到缓存区执行:git add readme.txt
执行:从缓存区提交到本地区:git commit -m ‘dev分支提交’查看文件内容
切换到master分支,并查看文件内容
注意:如果没有将dev分支合并到主分支上,那么在主分支即master上面是无法查看到dev分支提交的内容
小结
-
如何创建分支
git branch 分支名称
-
如何切换分支
git checkout 分支名称
-
查看分支
git branch
12.分支操作-分支合并与删除
目标
掌握分支合并与删除
内容
上一个示例中,我们已经创建了dev分支,并在分支上添加了内容,如果想要将dev分支内容合并到master上如何操作
-
分支合并
命令: git merge 分支名 合并dev分支 git merge dev
注意:当前我们是在master分支
合并后,我们发现master分支上的readme.txt文件内容已经改变
-
分支删除
合并完分支之后,如果不再使用dev分支,则可以删除此分支,先查看当前分支:
命令 git branch 查看分支情况
当前有两个分支dev与master,我们当前是在master分支上,如何删除dev分支
命令 git branch -d 分支名
我们使用git branch查看,发现dev分支已经被删除
小结
- 创建分支
git branch 分支名
-
如何合并分支 (项目经理或者组长)
git merge 分支名
-
如何查看分支
git branch
-
如何删除分支
git branch -d 分支名
13.GIT远程仓库介绍与码云仓库注册创建
目标
能说出常用的GIT远程仓库,并完成码云仓库的注册创建
内容
本地仓库实际上是存储在个人电脑中的,用于存储个人提交记录与提交日志,说简单点,你现在commit提交的内容都在本地
远程仓库是公网或外网中的一个仓库,主要用于存储个人或团队的提交记录与提交日志,团队合作开发也是靠远程仓库实现的。大家都把东西提交到同一个远程仓库里面就OK了,这样每个人都可以获取到团队内开发的所有内容了。目前市面上常用的git支持的远程仓库有如下三个
常用的远程仓库
- GitHub(https://github.com)
- gitee(https://gitee.com)
- gitlab(https://about.gitlab.com)
GitHub是一个面向开源及私有软件项目的托管平台,说白了就是给开发者提供了一个远程仓库。当然人家提供的功能还是很强大的,2018年微软以75亿美金收购了GitHub。现在的GitHub除了承载了代码托管平台的功能,更大的功能是组建了一个同性交流平台,大量的码农在上面做技术及非技术的交流,活跃用户还是很多的,可惜这个主站在国外,速度一般。
gitee和GitHub是一样的东西,是开源中国(OSChina)推出的基于Git的代码托管平台,又叫码云。有什么特点呢?有,还很硬的特点,主站在中国,是否秒懂?速度快啊,中国码农的数量那不是一般的多。
GitHub和gitee都是开源的代码托管平台,这里就有一个BUG了,如果我现在做的项目涉密性很强怎么办?放公网上?不现实啊,你再提供高等级的安全服务我也不敢放啊,自己搭一个把,gitlab就有了。gitlab基于git作为版本控制工具的基础上,可以为你搭建一个Web服务器,你就可以理解为自己搭建了一个局域网内能够访问的服务器。啥用?私服啊,代码安全啊,别人访问不到啊,就这个用。
那我们如果玩远程仓库玩哪个?百分之百玩gitee和gitlab啊,速度快,又免费,多好。gitlab还安全。
-
注册登录
访问地址:https://gitee.com/
请自主完成注册与登录
-
创建仓库
填写项目相关的信息
仓库创建完毕,可以看到,如果我们要与远程仓库同步,这里支持多种通信协议,当我们选中一种协议后,后面会出现对应的远程仓库地址。
小结
-
git常用的远程仓库有哪些
github gitee gitlab
14.GIT远程仓库操作-关联、拉取、推送、克隆(不用刻意记住命令)
目标
完成远程仓库的关联、拉取、推送、克隆操作
内容
-
关联
现在readme.txt已经推送到我们自己的本地仓库,在推送到码云仓库前,我们需要先建立本地仓库与远程仓库的关系
命令:git remote add origin 远程仓库地址 关联远程仓库
-
拉取:从码云仓库拉取到本地仓库
【注意】在推送代码前必须先拉取代码,否则无法推送本地仓库代码到码云仓库
命令:git pull origin master --allow-unrelated-histories 首次拉取需要添加:--allow-unrelated-histories 命令:git pull 后续拉取
-
推送:本地仓库推送到码云仓库
命令: git push -u origin master 首次推送 命令: git push 后续推送
填写账号和密码.
码云仓库有推送的信息
-
克隆
如果我们新加入一个团队,这个时候就需要我们把代码从远程仓库克隆过来,那么咱们操作呢?
新建文件夹learn-Git-B,新建的文件中右键
点击 Git bash Here
命令: git clone 远程仓库
这时候就拉取出远程仓库的内容
小结
1.常见命令
关联远程仓库命令:git remote add origin 远程仓库地址
举例:git remote add origin https://gitee.com/tiansuo123456/itheim-heima141.git
拉取命令:git pull origin master --allow-unrelated-histories 从码云服务器拉取到本地
首次拉取需要添加:--allow-unrelated-histories
命令:git pull 后续拉取
推送命令: git push -u origin master 首次推送 从本地推送到码云
命令: git push 后续推送
克隆命令: git clone 远程仓库 从码云服务器拉取到本地
举例:
git clone https://gitee.com/tiansuo123456/itheim-heima141.git
2.git clone(克隆) 与 git pull(拉取) 区别
#1.相同点:都是从远程服务器拉取代码到本地
#2.不同点:
git clone(克隆) :是在本地没有版本库的时候,从远程服务器克隆整个版本库到本地,是一个本地从无到有的过程。
git pull(拉取) :在本地有版本库的情况下,从远程库获取最新commit 数据(如果有的话),并merge(合并)到本地。