版本控制软件-Git

2024/06/27 Git

版本控制软件

控制软件版本和文件版本

软件版本

开发工具的版本,比如JDK8,MYSQL8,引入第三方库的版本

文件版本

源文件的版本,比如Java文件,html文件,css文件,js文件。 当文件内容发生变化,就记录一个新的版本号,方便回退到之前的版本。

版本控制软件的基本功能

  • 保存和管理文件

    要管理文件的版本,那么就需要有保存文件,为不同版本的文件分配版本号进行管理

  • 提供客户端的工具访问

    c/s,用户能够通过工具进行上传和拉取文件

  • 提供不同版本的比对功能

​ 不同版本的文件是不相同的,当出现问题或者回退的时候,需要查看历史版本的数据,有什么不同之处

基本功能相对于个人来讲,对于多人协作,要求版本控制软件有更多的能力

多人协作开发-集中式版本控制

img.png

当在集中式版本控制中,进行多人协作开发,所有人都可以进行文件的下载和上传。

问题提出:

如果同一时间,三个用户同时进行文件下载,修改和上传,那么就会出现文件冲突问题,以哪一个的文件为准呢?

VSS-解决方式

加锁,当用户A上传文件,文件处于加锁状态,其他人不允许修改;

当用户A上传完毕,其他用户需要拉取最新的文件,才能进行修改和上传

cvssvn-解决方式

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 地址 新文件夹名称

Search

    Table of Contents