分布式版本控制工具软件——Git概述

一、Git概述

官网:https://git-scm.com/官网链接
在这里插入图片描述

Git是一个免费的,开源的分布式版本控制系统,可以快速高效地处理从小型或大型的各种项目。Git易于学习,占用空间小,性能强大。

在这里插入图片描述

1.为什么要学习Git?

(1)SCM概念

  • SCM(Software Configuration Management)是一种软件工程领域的概念,用于管理软件项目中的配置项和变更,以确保团队成员能够协同工作并追踪项目的演变。SCM 通常涉及版本控制、配置管理、构建管理、发布管理等方面的工作。

  • CMM(Capability Maturity Model )能力成熟度模型作为评价一个大中型软件开发过程是否正确,合理,有效的重要手段,提供了不同等级的标准流程,对软件开发过程(流程)进行了约束和建议,。

  • 作为CMM 2级的一个关键域(Key Practice Area,KPA),SCM软件在整个软件的开发活动中占有很重要的位置。

(2)SCM实现

  • SCM 是一种概念,用于管理软件项目中的配置项和变更。
  • 而 Git 则是 SCM 概念的一个具体实现,它提供了一套工具和机制来管理源代码、跟踪变更、协作开发等,从而实现了 SCM 的功能。

2.什么是版本控制?

  • 一般情况下,一份文件,无论是DOC办公文档,还是编程源码文件,我们都会对文件进行大量的修改和变更。
  • 但是我们无法保证每一次的修改和变更都是正确并有效的,往往有的时候需要追溯历史操作,而版本控制(Revision control)是一种在开发的过程中用于管理我们对文件、目录或工程等内容的修改历史,方便查看更改历史记录,备份以便恢复以前的版本的软件工程技术。
  • 没有进行版本控制或者版本控制本身缺乏正确的流程管理,在软件开发过程中将会引入很多问题,如软件代码的一致性、软件内容的冗余、软件过程的事物性、软件开发过程中的并发性、软件源代码的安全性,以及软件的整合等问题。

在这里插入图片描述

(1)版本控制软件的基础功能

  • 1.保存和管理文件

    • 将文件存储在版本控制系统中,并记录文件的历史变更。
    • 提供对文件的增加、修改和删除操作,并记录这些变更。
    • 每个文件的不同版本进行组织和管理,以便开发者能够轻松地查找和访问历史版本。
      在这里插入图片描述
  • 2.提供客户端工具进行访问

    • 提供命令行界面(CLI)和图形用户界面(GUI)等不同的客户端工具,以便开发者能够方便地访问和操作版本控制系统。
    • 客户端工具通常提供文件的检出(checkout)、提交(commit)、更新(update)等操作,以及查看文件历史、比较文件差异等功能。
      在这里插入图片描述
  • 3.提供不同版本文件的比对功能
    在这里插入图片描述

    • 提供比较文件不同版本之间的差异和变更。
    • 支持文件版本之间的对比,以便开发者可以查看文件的修改历史和变更详情。
    • 提供可视化的比对工具,帮助开发者更直观地理解文件的变更情况,并进行决策和调整。

(2)集中式版本控制

集中式版本控制是一种传统的版本控制系统,它与分布式版本控制系统相对。

在集中式版本控制系统中,所有的版本信息和文件都存储在一个中央服务器上,而开发者通过客户端工具与中央服务器进行交互。

一些著名的集中式版本控制系统包括 CVS(Concurrent Versions System)和 SVN(Apache Subversion)等。

集中式版本控制系统的特点和基本原理:

  • 1.中央化存储:所有的文件和版本信息都存储在中央服务器上,开发者通过与中央服务器进行交互来管理和获取文件。

  • 2.客户端-服务器架构:开发者使用客户端工具来与中央服务器进行通信和操作。这些客户端工具通常提供文件的检出、提交、更新等基本操作。

  • 3.依赖网络连接:开发者需要与中央服务器保持网络连接才能进行版本控制操作,因为所有的文件和版本信息都存储在中央服务器上。

  • 4.协作和分支管理:集中式版本控制系统通常提供基本的协作和分支管理功能,但相对于分布式版本控制系统来说,这些功能可能不够灵活和强大。

  • 5.版本冲突:由于所有的开发者都是直接与中央服务器进行交互,因此可能会出现版本冲突的情况。当多个开发者同时修改同一个文件时,可能会导致冲突,需要手动解决。

虽然集中式版本控制系统在过去被广泛使用,并且仍然在一些项目中被采用,但随着分布式版本控制系统(如 Git)的兴起,它的使用逐渐减少。分布式版本控制系统具有更加灵活、高效和安全的特性,逐渐成为了主流。

在这里插入图片描述
集中式版本控制系统的一些主要缺点:

  • 1.单点故障:集中式版本控制系统依赖于中央服务器,如果中央服务器发生故障或者不可用,那么团队将无法进行代码的提交、更新或者检出操作,从而导致工作停滞。
  • 2.网络依赖:由于所有的版本信息都存储在中央服务器上,开发者需要通过网络连接才能进行版本控制操作。如果网络连接不稳定或者中断,开发者将无法进行代码操作,导致开发效率下降。
  • 3.性能瓶颈:随着项目规模的增大和团队人数的增加,中央服务器可能会成为性能瓶颈,导致代码操作的速度变慢,特别是在需要频繁提交和更新代码的情况下。
  • 4.版本冲突:由于所有的开发者都是直接与中央服务器进行交互,因此可能会出现版本冲突的情况。当多个开发者同时修改同一个文件时,可能会导致冲突,需要手动解决。
  • 5.不利于分布式团队:集中式版本控制系统更适合集中式团队,而对于分布式团队或者远程团队来说,由于依赖于中央服务器,可能会导致协作效率降低。

(3)分布式版本控制

分布式版本控制系统(Distributed Version Control System,DVCS)是一种版本控制系统,与传统的集中式版本控制系统相比,它具有分散存储和本地操作的特点。

分布式版本控制系统的特点和基本原理:

  • 1.分散存储:每个开发者都拥有完整的代码仓库的副本,而不仅仅是对中央服务器的一个连接。这意味着每个开发者都可以在本地进行版本控制操作,而不需要依赖网络连接。

  • 2.本地操作:开发者可以在本地进行提交、分支、合并等版本控制操作,而不需要每次都与中央服务器进行通信。这样可以提高操作的速度和效率,并且在没有网络连接的情况下仍然能够进行版本控制操作。
    在这里插入图片描述

  • 3.强大的分支管理:分布式版本控制系统通常提供更加灵活和强大的分支管理功能。开发者可以轻松创建、合并、删除分支,从而支持各种复杂的开发工作流程。

  • 4.高度安全:由于每个开发者都拥有完整的代码仓库的副本,因此即使中央服务器发生故障或遭受攻击,代码仓库仍然可以通过其他开发者的副本进行恢复和重建。

  • 5.适合分布式团队:分布式版本控制系统特别适合分布式团队或远程团队的协作开发。每个团队成员都可以在本地进行版本控制操作,并且可以轻松地共享和同步代码变更。


3.为什么要选择Git?

(1)分布式版本控制

  • Git 是一种分布式版本控制系统,每个开发者都可以在本地拥有完整的代码仓库,并且可以独立地进行开发和提交。
  • 这种分布式的特性使得团队能够更加灵活地工作,不会受到中央服务器的限制,也更容易应对网络故障等情况。

(2)高效的分支和合并机制

  • Git 提供了强大而灵活的分支和合并功能,使得开发团队可以轻松地创建、管理和合并分支。
  • 这使得团队能够同时进行多个特性的开发,而不会相互干扰,同时也能够更容易地进行代码审查和版本控制。

(3)速度和性能

  • Git 被设计为高效和快速的版本控制系统,在处理大型代码仓库和大量文件时表现优异。
  • 它使用了一些优化算法和数据结构,使得提交、分支操作等操作都能够在很短的时间内完成。
  • Git软件比SubversionCVSPerforceClearCase等SCM(Software Configuration Management软件配置管理)工具具有性价比更高的本地分支、方便的暂存区域和多个工作流等功能。

在这里插入图片描述

(4)广泛的应用

  • Git 已经成为了业界标准的版本控制系统之一,许多知名的开源项目和企业都在使用 Git 进行版本控制和团队协作。
    在这里插入图片描述

(5)强大的社区和生态系统

  • Git 是一个开源项目,拥有庞大的社区和活跃的开发者社群。
  • 这意味着你可以轻松地找到大量的教程、文档和插件来帮助你学习和使用 Git,同时也能够从社区中获得支持和解决问题。


二、Git的安装

软件安装

下载地址:https://git-scm.com/downloads

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
验证是否安装成功

在Windows桌面空白处,点击鼠标右键,弹出右键菜单

选择Git Bash Here菜单, 选择后,Windows系统弹出Git软件的命令行黑窗口
在这里插入图片描述

窗口弹出后,可以输入Git软件的操作指令。此时我们使用键盘输入操作指令:git -v或 git --version,查看当前Git软件的安装版本。

git -v
git --version

输入指令回车后,如果黑窗口中打印出咱们安装的软件版本2.40.0,Git软件安装成功了。
在这里插入图片描述


客户端的安装

下载地址:https://desktop.github.com/
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述


推荐一个练习 Git 网站
https://learngitbranching.js.org/

相关推荐

  1. 01.Git分布式版本控制工具

    2024-06-10 19:50:03       30 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-06-10 19:50:03       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-06-10 19:50:03       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-06-10 19:50:03       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-06-10 19:50:03       20 阅读

热门阅读

  1. next.js 的几种渲染方式

    2024-06-10 19:50:03       6 阅读
  2. RAG技术在教育领域的应用

    2024-06-10 19:50:03       11 阅读
  3. 关于使用spring boot自带的jackson解析xml心得

    2024-06-10 19:50:03       9 阅读
  4. 第8天:会话管理与Cookies

    2024-06-10 19:50:03       8 阅读
  5. selenium中,如何使用选择框

    2024-06-10 19:50:03       10 阅读
  6. 1、深度学习-安装

    2024-06-10 19:50:03       9 阅读
  7. 【RFC3665】SIP协议解析

    2024-06-10 19:50:03       8 阅读
  8. 机器学习(一)

    2024-06-10 19:50:03       8 阅读
  9. 设计方案总结

    2024-06-10 19:50:03       9 阅读
  10. 斗地主小游戏

    2024-06-10 19:50:03       10 阅读