文章目录
- 02-为什么要学习Git软件?
- 03 概念:版本控制
- 04 概念:版本控制软件基础功能
- 05 概念:集中式、分布式版本控制系统、多人协作开发
- 5.1 文件冲突问题
- 5.2集中式版本控制(CVS,SVN)
- 5.3 分布式版本控制
- 操作
- 克隆
- 创建仓库
- 011 GitHub Desktop分支原理
- 分支操作
- 如何解决文件冲突问题?
- 添加标签
- 远程仓库-GitHub
- 创建文件
- 修改文件
- 创建新分支
- 删除库
- 从GitHub中下载资源库
- 另一个远程仓库:gitee
- README、IGNORE
视频所在地址:
尚硅谷新版Git快速入门(3h迅速掌握git):网站
一个练习 Git 的网站:网站
02-为什么要学习Git软件?
资源管理:人力、代码(.html/.css/.js/.py/.c/.java)、文档资源(.doc/.pdf/.pptx/)
SCM:Software Configuration Management
软件配置管理是指通过执行版本控制、变更控制的规程,以及使用合适的配置管理软件,来保证多有的配置项的完整性和可追踪性。配置管理是对工作成果的一种有效保护。
VSS:集中式版本控制系统(每次只能一个人开发)
CVS:支持多人协作,也是集中式版本控制系统
SVN:Subversion,开放原地阿妈的版本控制系统,通过采用分支管理系统的高效管理,简而言之就是用于多个人共同开发一个项目,实现共享资源,实现最终集中式的管理。
Git:是开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。也是Linus Torvalds为了帮助管理Linux内核开发而开发的一个开放原代码的版本控制软件。
03 概念:版本控制
版本指的是软件版本、文件版本
软件版本一般使用数字表示
文件版本:保存重要的历史记录、恢复数据
04 概念:版本控制软件基础功能
1、保存和管理文件的不同版本文件
管理功能体现在版本号的自动生成
2、提供客户端工具进行访问:不能手动操作文件
用户通过客户端工具进行访问不同版本的文件
3、提供不同版本文件的比对功能
05 概念:集中式、分布式版本控制系统、多人协作开发
5.1 文件冲突问题
5.2集中式版本控制(CVS,SVN)
约定好文件第几行由哪个用户来完成,之后再由版本控制器合并即可
对于多人对文件同一行进行修改,那就需要人工参与来完成
如果中央服务器宕机了,这时候用户无法上传和下载,因此要学习分布式
5.3 分布式版本控制
在本地搭建一个和中央服务器一模一样的资源库,通过访问本地仓库进行上传和下载文件,当中央服务器恢复之后就将本地资源库进行关联,如果网络不太好的话,本地资源库和中央服务器之间的关联就会非常慢,所以分布式非常依靠网络,好处就是资源比较安全,而且本地的操作快,之前都是通过网络与中央服务器进行交互,现在是跟本地在交互。Git属于分布式版本控制。
操作
克隆
将中央服务器的资源下载到本地资源库的操作就叫克隆,clone
创建仓库
选择New repository
011 GitHub Desktop分支原理
多人开发时提交每个人负责的功能对应的版本
这种情况下每个人提交的情况不同,这个提交的序列很乱,这种情况不太好,Git想了一种方法,见以下内容
即是为资源库创建副本,每个人在副本上进行开发
每个人在副本上进行开提交各自负责的功能版本
然后进行分支合并,合并情况见下图,这种情况其实也是会出现冲突的,但是这种冲突只需要解决一次即可,再没有想出这种办法前出现的冲突是很多次的,见从这里往上面数第三张图片所示
分支操作
以下所给出的案例为例演示分支合并的操作,其中wangwu是项目经理,其余两位开发 人员
1、创建一个新的库
在options中可以设置主分支的名字
这个主分支就是项目经理使用的,再创建其余两个分支给两个开发人员使用
以开发的功能名命名分支的名称,创建的两个分支分别为user和order
分别为两个子分支提交一份文件,分别命名为user.txt和order.txt
切换到mian分支对两个分支进行合并,点击该选项
选择要合并的分支,并提交给分支
查看main分支的文件,发现已经将之前创建的文件传到mian中了
如何解决文件冲突问题?
场景:在user分支中创建common.txt文件,文件内容是user
,在order分支中创建common.txt文件,文件内容是order
,将两个文件都提交给main,再提交第二个分支时发生以下情况:
此时还是选择进行提交
选择一个编辑器打开有冲突的文件,进行修改
编辑成这样
然后选择提交,此时完成了手动解决文件的冲突问题
添加标签
远程仓库-GitHub
中央服务器中有一个资源仓库,这个资源仓库又叫中央仓库,也称为远程仓库。
如何操作远程仓库?
自己搭建这个远程仓库会比较麻烦,所以此时选择第三方代码托管平台,即GitHub网站,该网站即提供了远程仓库服务
创建文件
在github上创建文件并提交
提交码
类似于版本号
修改文件
创建新分支
在上面的图中的按钮中不能New一个新的branch
于是只能在上图箭头所指的按钮旁边的mian,输入order并搜索,搜索不到,这是会提示你是否创建这个分支,创建即可
删除库
在setting选项划到底部
输入之后,删除即可
从GitHub中下载资源库
设置克隆的路径
刚开始没有clone成功,后来提示我retry一下,成功了
然后再往本地仓库中提交一份文件,之后再将本地文件上传到GitHub上面,使用以下按钮进行操作
在GitHub上查看
另一个远程仓库:gitee
由于GitHub是国外网站,有时候访问比较不方便,所以国内推出了gitee,使用GitHub来拉gitee的仓库,使用的是gitee上面仓库的地址,然后将网址输入到GitHub中就可以下载到本地了
README、IGNORE
1、GitHubDeskTop不具备比对word文档是否修改的功能,倒是可以比对是否创建该word文件的功能
2、在从上传到本地资源库的时候一些文本文件不想上传,可以使用单个文件的忽略,当然也可以使用忽略全部的不想添加某一类型的文件,以阻止该类型文件上传至本地资源库,这类文件例如:.bak
3、下次创建文件时如果产生了.bak类型的文件,这个时候在对比的时候就不会出现.bak文件作为要上传本地资源库的选项。
资料:【狂神说Java】Git最新教程通俗易懂
版本控制:
版本控制器:Git、SVN、VSS、Visual Studio Online