Git简要笔记
git介绍:
git是一款SCM软件,用来管理源码文件,需求文档,设计文档,开发文档等项目文件
在团队开发中,通过SCM软件管理这些文件,而业界用的较多的是git,它支持多人协作同时开发,且不需要中央服务器,而是分布式的版本控制系统
git也是linus为了方便管理linux内核而开发的
基础概念:
1.版本控制概念,版本一般分为软件版本和文件版本
软件版本一般用数字,即软件版本号表示
文件版本一般用文件名,用来保存文件的历史记录,以及恢复数据
而版本控制基础功能有
1.保存和管理文件(自动生成版本文件)
2.提供客户端工具访问(无法直接访问,直接访问可能出问题,需要使用客户端工具访问不同版本文件)
3.不同版本文件的比对功能(筛选出不同版本文件的差异)
2.集中式版本控制
资源全放在中央服务器,想要资源,用户就得下载到本地,修改后又得上传
这样的版本控制有明显的缺点,用户同时下载的同一个版本文件,但是上传时间不一样,服务器的资源就会被覆盖为最后一个上传的资源,即文件冲突问题
而有些软件,如VSS,资源会被加上一把锁,在资源被下载后,资源就会被锁上,不允许其他用户下载(但是可以查看),直到原来被下载的资源的用户在上传,才会自动释放锁
如此就可以解决文件冲突问题,但是较为繁琐,且不能实现同时开发
而CVS,SVN也是类似的做法,但是它们做了约束,每一个用户只能修改资源的某一块区域,比如某一行,用户修改后可以直接提交,多个用户修改后,再把所有修改后的资源合并一下
但是如此仍然有缺点,比如多个用户对同一块区域,比如对同一行进行操作,如此就无法解决
以上所有做法都是集中式版本控制,一旦服务器寄了,所有用户就都无法使用资源了
3.分布式版本控制
类似集中式版本控制,仍然有中央服务器,但是却在本地复制一份资源库,如此服务器寄了,也可以继续写在本地服务器,服务器一旦恢复,就把本地和中央服务器进行同步
这样也有缺点,需要在本地复制一份中央服务器的资源,占用资源大,较为依赖网络
而git就是一种分布式版本控制系统
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律