Git简要笔记

发布时间 2023-04-26 12:40:20作者: 风乐

git介绍:
git是一款SCM软件,用来管理源码文件,需求文档,设计文档,开发文档等项目文件

在团队开发中,通过SCM软件管理这些文件,而业界用的较多的是git,它支持多人协作同时开发,且不需要中央服务器,而是分布式的版本控制系统

git也是linus为了方便管理linux内核而开发的

基础概念:
1.版本控制概念,版本一般分为软件版本和文件版本
  软件版本一般用数字,即软件版本号表示
  文件版本一般用文件名,用来保存文件的历史记录,以及恢复数据

  而版本控制基础功能有
  1.保存和管理文件(自动生成版本文件)
  2.提供客户端工具访问(无法直接访问,直接访问可能出问题,需要使用客户端工具访问不同版本文件)
  3.不同版本文件的比对功能(筛选出不同版本文件的差异)

2.集中式版本控制

资源全放在中央服务器,想要资源,用户就得下载到本地,修改后又得上传

这样的版本控制有明显的缺点,用户同时下载的同一个版本文件,但是上传时间不一样,服务器的资源就会被覆盖为最后一个上传的资源,即文件冲突问题

而有些软件,如VSS,资源会被加上一把锁,在资源被下载后,资源就会被锁上,不允许其他用户下载(但是可以查看),直到原来被下载的资源的用户在上传,才会自动释放锁

如此就可以解决文件冲突问题,但是较为繁琐,且不能实现同时开发

而CVS,SVN也是类似的做法,但是它们做了约束,每一个用户只能修改资源的某一块区域,比如某一行,用户修改后可以直接提交,多个用户修改后,再把所有修改后的资源合并一下

但是如此仍然有缺点,比如多个用户对同一块区域,比如对同一行进行操作,如此就无法解决

 

以上所有做法都是集中式版本控制,一旦服务器寄了,所有用户就都无法使用资源了

3.分布式版本控制

类似集中式版本控制,仍然有中央服务器,但是却在本地复制一份资源库,如此服务器寄了,也可以继续写在本地服务器,服务器一旦恢复,就把本地和中央服务器进行同步

这样也有缺点,需要在本地复制一份中央服务器的资源,占用资源大,较为依赖网络

 

而git就是一种分布式版本控制系统