git---->团队开发神器,一篇文章直接掌握
- 一 学习git的原因
- 概念
- 版本的概念
- 1 版本控制软件的基础功能
- 2 集中式版本控制软件
- 3 分布式版本控制
- 二 git的安装
- 三 GitHub Desktop的使用
- 四 团队操作
- 五 中央服务器--github
- 从github上下载文件到本地仓库
- 传输文件
- 六 国内中央数据库gitee
- 七 版本号
- 创建文件版本号的变化
- 分支操作
- 八 指令
一 学习git的原因
在众多的项目管理中,git是更适合于我们的
概念
版本的概念
软件版本
比如我们经常用的软件
软件名 | 软件版本 |
---|---|
mysql | 5.7/8.0 |
JDK | 1.8/17/20 |
IDEA | 2022/2023 |
文件版本
应该在文件修改过程中,比较重要的操作(可能会破坏文件),我们就对其进行文件复制(创建副本),之后就有许多文件版本了
作用
- 保存重要的修改记录
- 恢复数据
1 版本控制软件的基础功能
-
保存和管理文件
-
提供客户端工具进行访问
-
提供不同版本文件的比对功能
2 集中式版本控制软件
若要对其进行修改,则先从中央服务器里下载,在本地修改好后,再上传到中央服务器
这样的话很明显有个问题----->文件冲突问题
- 每个人都去下载上传,会导致文件的被覆盖掉
那 VSS 如何解决的这个问题呢?
它用了锁
- 当第一位员工进行修改时,该文件在中央服务器里是锁上的状态,该员工上传之后,锁才是开启的状态(其他人才可以进行下载)
但是这个效率是不是下降了呢?
那 CVS,SVN 如何解决的这个问题呢?
利用文件比对功能,约束员工对文件的修改
- 每个人都可以进行下载,只是修改其中的指定部分
总结: 所有的操作都是以中央服务器为基础,那如果中央服务器宕机了,网崩了,我们所用的文件是否被损坏了呢?
3 分布式版本控制
- 就是在本地再创建一个库存储信息,之后上传至中央服务器
- 如果中央服务器出问题,修改好后,两个服务器关联一下就可以了
缺点: 依赖于网络
优点: 我们的资源更安全,本地的操作更快一些
其中git属于分布式版本控制
二 git的安装
Git的下载就直接进入官网,downloads那里选取自己电脑对应的系统安装即可
git官网
由于git是命令操作,和linux差不多,选用图形化界面的话会更容易上手,
图形化界面选这个github desktop
其中Git的安装环节,我配置的是notepad++
这个的下载参考这里
三 GitHub Desktop的使用
-
咱们这里新建一个
README文档
是对仓库文件的一些描述
Git ignore
让软件忽略其文件,比如:修改之后的副本文件,可以直接忽略掉,在对应的文件右键点击—>ignore -
界面解释
-
创建文件-----点击查看文件位置,创建一个文本,就可以操作了
注:本地服务器是在.git文件内,我们无法对其进行操作
提交流程
这个比对功能只针对与文本文件,其他比如word,图片这些无法比对
创建一个文件通过提交操作,传到本地服务器中。
若对其进行修改再次提交,就会进行比对,然而两此文本都会保留在本地服务器中,查看history可查看历史操作记录
文件版本是由40个16进制的数字组成的,又叫提交码
若要删除文件(本地和服务器)—>删除文件夹里的文件,然后再次提交一个空的操作,本地服务器进行比对就会删除那个文件
四 团队操作
团队协作中,每个人负责的部分文件会多次修改提交,这么多人+提交的顺序混乱就会导致问题
- 文件冲突问题
- 本地服务器容量过大,文件对比效率降低
解决方法
git提供了一个分支的方法:
创建一个副本,多次进行修改都在副本操作,最后提交的时候在副本整合
实际上开发
wangwu为产品经理
操作演示
创建分支仓库,在其创建文件上传到对应的仓库
选择要合并的仓库,进行操作
若
两个仓库都要去合并同一个文件,则会引起文件冲突,在合并的时候会提示错误
需要手动解决文件冲突问题
对提交的历史记录进行标签备注操作
五 中央服务器–github
网页注册登录github
------------------------------------------------------------------------------------------------------------------
从github上下载文件到本地仓库
传输文件
六 国内中央数据库gitee
官方网址
和github用法差不多
七 版本号
git根据文件内容以及加密算法(SHA-1:40位)
定位仓库中的文件(2(文件夹)+38(文件名))------->在.git–>objects里
利用git命令在查看其版本号的变化以及文件内容
git cat-file -p +版本号
创建文件版本号的变化
创建并提交一个文件,可见会产生许多相关文件
再去创建并提交一个文件,该文件与之前的文件也是有关联
分支操作
HEAD文件指向当前仓库,里面可查看最新操作的版本号,不同的分支仓库指向不同的最新版本号
文件的状态变化
八 指令
可见一些底层原理的实现还是要靠指令的
git常用命令