项目管理与版本控制

简介: 版本控制最主要的功能就是追踪文件的变更。它将什么时候、什么人更改了文件的什么内容等信息忠实地了记录下来。每一次文件的改变,文件的版本号都将增加。除了记录版本变更外,版本控制的另一个重要功能是并行开发。开发往往是多人协同作业,版本控制可以有效地解决版本的同步以及不同开发者之间的开发通信问题,提高协同开发的效率。并行开发中最常见的不同版本软件的错误(Bug)修正问题也可以通过版本控制中分支与合并的方法有效地解决

版本控制最主要的功能就是追踪文件的变更。它将什么时候、什么人更改了文件的什么内容等信息忠实地了记录下来。每一次文件的改变,文件的版本号都将增加。除了记录版本变更外,版本控制的另一个重要功能是并行开发。开发往往是多人协同作业,版本控制可以有效地解决版本的同步以及不同开发者之间的开发通信问题,提高协同开发的效率。并行开发中最常见的不同版本软件的错误(Bug)修正问题也可以通过版本控制中分支与合并的方法有效地解决


版本控制工具所具备的功能:


  • 协调开发与修改


多人开发或修改服务端同一个文件,互不影响,但又相互有所关联


  • 数据备份:


不仅保存文件与目录的当前状态,同时还保留历史、迭代


  • 版本控制


节约空间、提高效率,在保存每一个版本的文件信息的同时不保存重复数据。


  • 权限控制


对团队中开发人员进行权限控制


对团队外开发者所提交内容进行审核(Git独有)


  • 历史记录


查看修改者、修改内容、日志信息等


具有将版本任意恢复到历史状态,快速开发、迭代


  • 分支管理


允许开发团队在工作中多条生产线同时推进任务,进一步提高效率


Git简介


Git是一个免费的、开源的分布式版本控制系统,旨在快速高效地处理任意类型的项目。Git易于学习,占用空间小,性能极快。它比Subversion、CVS、Perforce和ClearCase等SCM工具具有廉价的本地分支、方便的暂存区和多个工作流等特性。


Git工作流:


在项目开发中使用Git的方式


640 (8).png


单机式:


优点:


  • 简单,很多系统中都有内置;


  • 适合管理文本,如系统配置;


缺点:


  • 管理少量文件,不支持项目的管理;


  • 支持的文件类型单一;


  • 不支持远程,网络传输;


集中式:


以中央仓库作为项目所修改的单点实体,所有的编辑修改都提交到主分支上


640 (9).png



优点:


  • 适合多人团队协作开发;


  • 代码集中化管理;


缺点:


  • 单点故障;


  • 必须联网,无法单机工作;


Git Flow:


“功能驱动式开发”(Feature-driven development,简称FDD)。主要体现为通过为功能开发、发布准备、维护、修改、检查为其建立独立的分支,让其迭代过程更为流畅。


优点:


  • 灵活


  • 适合多人团队协作功能开发


  • 代码分布式化管理;


缺点:


  • 架构复杂


  • 容易冲突


640 (10).png


GitForking:


建立在git flow的基础上,充分使用了git中的fork、pull request以达代码审核的目的


如何理解?个人感悟


以大自然中的树(一颗)比喻,形象化以助于理解。除了唯一主干(树根)外其他都是多分叉的

640 (11).png


单机:树根 <- 树干


集中式:树根 <- 树干 <- 树枝


Git Flow:树根 <- 树干 <- 树枝 <- 树杈


Git Forking:树根 <- 树干 <- 树枝 <- 树杈 <- 树叶

目录
相关文章
|
机器学习/深度学习 数据采集 人工智能
大模型升级与设计之道:ChatGLM、LLAMA、Baichuan及LLM结构解析(上)
大模型升级与设计之道:ChatGLM、LLAMA、Baichuan及LLM结构解析(上)
1309 0
|
5月前
|
JSON API 数据格式
手把手教你抓取京东商品评论:API 接口解析与 Python 实战
京东商品评论蕴含用户对产品质量、体验和服务的真实反馈,分析这些数据有助于企业优化产品和满足用户需求。由于京东未提供官方API,需通过逆向工程获取评论数据。其主要接口为“商品评论列表接口”,支持按商品ID、评分、排序方式等参数获取评论,返回JSON格式数据,包含评论列表、摘要(如好评率)及热门标签等信息。
|
10月前
|
人工智能 自然语言处理 算法
主动式智能导购 AI 助手解决方案实践与测评
主动式智能导购 AI 助手解决方案实践与测评
|
10月前
|
安全 关系型数据库 MySQL
Windows Server 安装 MySQL 8.0 详细指南
安装 MySQL 需要谨慎,特别注意安全配置和权限管理。根据实际业务需求调整配置,确保数据库的性能和安全。
945 9
|
10月前
|
数据挖掘 索引 Python
Pandas数据读取:CSV文件
Pandas 是 Python 中强大的数据分析库,`read_csv` 函数用于从 CSV 文件中读取数据。本文介绍 `read_csv` 的基本用法、常见问题及其解决方案,并通过代码案例详细说明。涵盖导入库、读取文件、指定列名和分隔符、处理文件路径错误、编码问题、大文件读取、数据类型问题、日期时间解析、空值处理、跳过行、指定索引列等。高级用法包括自定义列名映射、处理多行标题和注释行。希望本文能帮助你更高效地使用 Pandas 进行数据读取和处理。
780 13
|
存储 测试技术 API
Pandas 2.2 中文官方教程和指南(十·一)(4)
Pandas 2.2 中文官方教程和指南(十·一)
626 2
|
Linux
Linux 服务器下载百度网盘文件
本教程指导如何使用 `bypy` 库从百度网盘下载文件。首先通过 `pip install bypy` 安装库,接着运行 `bypy info` 获取登录链接并完成授权,最后将文件置于指定目录并通过 `bypy downdir /Ziya-13b-v1` 命令下载至本地。
1074 1
Linux 服务器下载百度网盘文件
|
运维 Docker 微服务
掌握 Docker Compose:简化你的多容器应用部署
在微服务架构和容器化技术普及的今天,管理多容器部署变得颇具挑战。Docker Compose 通过一个 YAML 文件定义和运行多容器应用,简化了部署和运维。本文介绍其基本概念、使用方法及优势,包括服务、项目、卷和网络等核心概念,并提供从安装到管理服务的详细步骤,助你轻松掌握 Docker Compose,提高开发效率和应用运维质量。
|
存储 SQL Java
IOTDB入门(四)
【4月更文挑战第28天】
283 0
|
缓存 Java Maven
SpringCloud基于Eureka的服务治理架构搭建与测试:从服务提供者到消费者的完整流程
Spring Cloud微服务框架中的Eureka是一个用于服务发现和注册的基础组件,它基于RESTful风格,为微服务架构提供了关键的服务注册与发现功能。以下是对Eureka的详细解析和搭建举例。
186 0