当前位置: 首页 > news >正文

Git-分布式版本控制工具

目录

1. 概述

1. 1集中式版本控制工具

1.2分布式版本控制工具

2.Git

2.1 git 工作流程


1. 概述

        在开发活动中,我们经常会遇到以下几个场景:备份、代码回滚、协同开发、追溯问题代码编写人和编写时间(追责)等。备份的话是为了避免丢失数据,导致无法恢复,会选择多种方法存储,网盘、硬盘等等;在开发过程中我们需要不断的修改我们开发的代码,当项目或者某个模块完成的时候,代码已经被改的面目全非,这就需要代码回滚;项目开发通常都不是一个人,而是一个团队多人协作,在这个过程中我们可能不能同时对代码进行开发,所以需要一个更高效、便捷的协同开发方式;当我们代码出现问题的时候,由于最后多个模块集成到一起,诸多的记录或者没有记录记载代码对应的负责人,就导致无法追责。以上问题同时解决的好办法就是版本控制,对于我们开发中的项目,每次的修改我们看作一个、定义一个版本。

        通过定义版本来控制开发文件的方式就叫做版本控制,我们使用的工具就成为版本控制工具。现在最主流的就是分布式版本控制工具-Git。

        常见的版本控制方式:

1. 1集中式版本控制工具

        SVN and CVS:(已经过时了)

       不同的开发人员,在提交一次版本的时候都会同步到其他开发人员,如果中央服务器宕机,那么其他电脑就无法工作,由于所有数据都在服务器中,如果服务器出现问题,那么就gg。

1.2分布式版本控制工具

        Git:(称霸全世界)

       没有中央服务器,只有一个共享版本库,这个版本库存储在远程仓库中,除此之外,每个开发人员本地都会有一个完整的版本库。如果共享版本库中有新的版本,那么开发人员就可以直接Clone下来就可以了,当然如果共享版本库挂掉了也没事,随便拿一个开发人员本地的版本库直接PUSH上去就可以了。就没有了宕机的问题。

        分布式版本工具不需要联网,本地就有完整版本库,各自的修改可以互相PUSH就可以了。

         特点: 速度快  设计简单  强力支持非线性开发   完全分布式  有能力高效管理Linux内核一样的超大规模项目(速度and数据量)

        非线性开发: 其实就是分支合并的概念。不同开发人员开发不同的模块,同步进行,最后集成到一起,互不影响。

2.Git

2.1 git 工作流程

        这张图属于总结性流程图,大致了解,等后面的内容看完再回来瞅它,会恍然大悟。

        远程仓库、本地仓库。

 相关命令:

1. clone : 克隆,从远程仓库克隆代码到本地仓库

2.checkout : 检出,从本地仓库中检出一个仓库分支然后进行修订

3. add : 添加,在提交前将代码提交到暂存区

4. commit : 提交, 提交到本地仓库,本地仓库保存修改的各个版本

5. fetch : 抓取, 从远程仓库,抓取到本地仓库,不进行任何的合并动作,一般不用

6.pull : 拉取,从远程仓库拉取到本地仓库,自动进行合并merge,相当于fetch+merge

7. push : 推送,修改完成后,将需要共享的代码推送到远程仓库        

http://www.lryc.cn/news/504409.html

相关文章:

  • C++ 第10章 对文件的输入输出
  • 【机器学习】手写数字识别的最优解:CNN+Softmax、Sigmoid与SVM的对比实战
  • android 聊天界面键盘、表情切换丝滑
  • Web项目图片视频加载缓慢/首屏加载白屏
  • 关于Git分支合并,跨仓库合并方式
  • [网络] UDP协议16位校验和
  • Vue 3 中的 `update:modelValue` 事件详解
  • vue3+vite+ts 使用webrtc-streamer播放海康rtsp监控视频
  • QT数据库(四):QSqlRelationalTableModel 类
  • 蓝桥杯刷题——day5
  • YOLO11改进-模块-引入多尺度差异融合模块MDFM
  • vlan和vlanif
  • Apache Kylin最简单的解析、了解
  • MySQL——连接
  • 前端微服务实战:大型应用的拆分与治理
  • Linux shell的七大功能 --- history
  • C++ webrtc开发(非原生开发,linux上使用libdatachannel库)
  • C语言刷题
  • LabVIEW实现RFID通信
  • Linux 网络流量控制 - 实现概述
  • 分布式 令牌桶算法 总结
  • FFMPEG视频转图片
  • docker入门实践---虚拟机环境配置
  • java要防止重复序列化的问题JSON.toJSONString转义问题
  • TS的类型守卫、类型约束实践
  • 文件转曲,限制PDF文件编辑的最佳方案!
  • MySQL系列之数据授权(安全)
  • 用 Python 实现经典的 2048 游戏:一步步带你打造属于你的小游戏!
  • Vue vs. React:两大前端框架的深度对比与分析(一)
  • React 进阶深入理解核心概念与高阶实践