版本控制软件
控制软件版本和文件版本
软件版本:
开发工具的版本,比如
JDK8,MYSQL8,引入第三方库的版本
文件版本:
源文件的版本,比如
Java文件,html文件,css文件,js文件。 当文件内容发生变化,就记录一个新的版本号,方便回退到之前的版本。
版本控制软件的基本功能
-
保存和管理文件
要管理文件的版本,那么就需要有保存文件,为不同版本的文件分配版本号进行管理
-
提供客户端的工具访问
c/s,用户能够通过工具进行上传和拉取文件
-
提供不同版本的比对功能
不同版本的文件是不相同的,当出现问题或者回退的时候,需要查看历史版本的数据,有什么不同之处
基本功能相对于个人来讲,对于多人协作,要求版本控制软件有更多的能力
多人协作开发-集中式版本控制

当在集中式版本控制中,进行多人协作开发,所有人都可以进行文件的下载和上传。
问题提出:
如果同一时间,三个用户同时进行文件下载,修改和上传,那么就会出现文件冲突问题,以哪一个的文件为准呢?
VSS-解决方式
加锁,当用户A上传文件,文件处于加锁状态,其他人不允许修改;
当用户A上传完毕,其他用户需要拉取最新的文件,才能进行修改和上传
cvs、svn-解决方式
和VSS相同,都是采取的加锁模式。但不同的是,这两者是对行进行上锁,对不同行进行合并操作,这里就要用到
文件对比功能了。
分布式版本控制
集中式的问题:
服务器如果宕机了,用户无法拉取最新代码或者提交代码,如果数据丢失了,那么就会产生问题。
分布式,即每一个用户本地都有一个仓库,当用户修改数据的时候,修改的是本地仓库,最后推送的时候,将本地仓库的
数据推送到中央仓库。这样,即使服务器数据丢失或者宕机,本地也有仓库数据保存。
Git基本命令
查看当前Git版本
git -v
$ git -v
git version 2.43.0.windows.1
签名
–global 表示全局配置
$ git config --global user.name "your name"
$ git config --global user.email "your email"
仓库初始化
初始化仓库,会产生一个.git文件夹
$ git init
Initialized empty Git repository in D:/java_project/testGit/.git/
克隆远程仓库
新文件夹名称可以不填写,表示使用仓库名作为文件夹名称
git clone 地址 新文件夹名称