Git(1):Git概述

news2024/11/16 1:28:16

1 开发中的实际场景

场景一:备份

小明负责的模块就要完成了,就在即将Release之前的一瞬间,电脑突然蓝屏,硬盘光荣牺牲!几个月来的努力付之东流

场景二:代码还原

这个项目中需要一个很复杂的功能,老王摸索了一个星期终于有眉目了,可是这被改得面目全非的代码已经回不到从前了。什么地方能买到哆啦A梦的时光机啊?

场景三:协同开发

小刚和小强先后从文件服务器上下载了同一个文件:Analysis.java。小刚在Analysis.java文件中的第30行声明了一个方法,叫count(),先保存到了文件服务器上;小强在Analysis.java文件中的第50行声明了一个方法,叫sum(),也随后保存到了文件服务器上,于是,count()方法就只存在于小刚的记忆中了

场景四:追溯问题代码的编写人和编写时间!

老王是另一位项目经理,每次因为项目进度挨骂之后,他都不知道该扣哪个程序员的工资!就拿这次来说吧,有个Bug调试了30多个小时才知道是因为相关属性没有在应用初始化时赋值!可是二胖、王东、刘流和正经牛都不承认是自己干的!

2 版本控制器的方式

2.1 集中式版本控制工具

集中式版本控制工具,版本库是集中存放在中央服务器的,team里每个人work时从中央服务器下载代码,是必须联网才能工作,局域网或互联网。个人修改后然后提交到中央版本库。

举例:SVN和CVS

2.2 分布式版本控制工具

分布式版本控制系统没有“中央服务器”,每个人的电脑上都是一个完整的版本库,这样工作的时候,无需要联网了,因为版本库就在你自己的电脑上。多人协作只需要各自的修改推送给对方,就能互相看到对方的修改了。

举例:Git

3 SVN

4 Git

Git是分布式的,Git不需要有中心服务器,我们每台电脑拥有的东西都是一样的。我们使用Git并且有个中心服务器,仅仅是为了方便交换大家的修改,但是这个服务器的地位和我们每个人的PC是一样的。我们可以把它当做一个开发者的pc就可以就是为了大家代码容易交流不关机用的。没有它大家一样可以工作,只不过“交换”修改不方便而已。

git是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。Git是Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。

同生活中的许多伟大事物一样,Git 诞生于一个极富纷争大举创新的年代。Linux 内核开源项目有着为数众多的参与者。 绝大多数的 Linux 内核维护工作都花在了提交补丁和保存归档的繁琐事务上(1991-2002年间)。 到 2002 年,整个项目组开始启用一个专有的分布式版本控制系统 BitKeeper 来管理和维护代码。

到了 2005 年,开发 BitKeeper 的商业公司同 Linux 内核开源社区的合作关系结束,他们收回了Linux 内核社区免费使用 BitKeeper 的权力。 这就迫使 Linux 开源社区(特别是 Linux 的缔造者Linus Torvalds)基于使用 BitKeeper 时的经验教训,开发出自己的版本系统。 他们对新的系统制订了若干目标:

  • 速度
  • 简单的设计
  • 对非线性开发模式的强力支持(允许成千上万个并行开发的分支)
  • 完全分布式
  • 有能力高效管理类似 Linux 内核一样的超大规模项目(速度和数据量)

5 Git工作流程图

命令如下:

  1. clone(克隆): 从远程仓库中克隆代码到本地仓库
  2. checkout (检出):从本地仓库中检出一个仓库分支然后进行修订
  3. add(添加): 在提交前先将代码提交到暂存区
  4. commit(提交): 提交到本地仓库。本地仓库中保存修改的各个历史版本
  5. fetch (抓取) : 从远程库,抓取到本地仓库,不进行任何的合并动作,一般操作比较少。
  6. pull (拉取) : 从远程库拉到本地库,自动进行合并(merge),然后放到到工作区,相当于fetch+merge
  7. push(推送) : 修改完成后,需要和团队成员共享代码时,将代码推送到远程仓库

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1353908.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

多核调度预备知识

问题 内核对进程调度时发生了什么? 进程调度的本质 任务 / 进程 切换 即:上下文切换,内核对处理器上的执行的进程进行切换"上下文" 指:寄存器的值"上下文切换" 指: 将寄存器的值保存在内存中 (…

odoo 客制化审批流

以BPM、OA为代表的应用平台,低代码处理为前提的审批流功能定制化 功能介绍: 业务对象:针对侵入式注册BPM业务场景:设置审批场景:如:请假大于三天的场景、金额大于1000的场景节点条件: 当符合某…

力扣题:高精度运算-1.2

力扣题-1.2 [力扣刷题攻略] Re:从零开始的力扣刷题生活 力扣题1:415. 字符串相加 解题思想:从后往前遍历两个字符串,然后进行相加即可 class Solution(object):def addStrings(self, num1, num2):""":type num1: str:type …

专题一_双指针(一)

文章目录 283.移动零题目解析讲解算法原理扩展编写代码 1089.复习零题目解析讲解算法原理编写代码 202.快乐数题目解析讲解算法原理证明编写代码 11.盛最多水的容器题目解析讲解算法原理暴力解法优秀的解法时间复杂度分析 编写代码 283.移动零 题目链接 题目解析 题目还是比较…

flex实现间距相等的table布局

<!DOCTYPE html> <html> <head><style>.container {width: 800px;display: flex;flex-wrap: wrap;gap: 20px;border: 1px solid #ddd;margin: 20px;}.cell {width: calc(50% - 10px); /* 每列占据一半宽度&#xff0c;减去间隙的宽度 */background-col…

把Canvas捡起来吧!

canvas介绍 canvas是HTML5新增的一种新特性&#xff0c;一种使用JavaScript绘制图形的HTML元素。 基本使用 <canvas id"example" width"300" height"300" />使用 矩形&#xff1a; var canvas document.getElementById("examp…

快速搭建知识付费小程序,3分钟即可开启知识变现之旅

产品服务 线上线下课程传播 线上线下活动管理 项目撮合交易 找商机找合作 一对一线下交流 企业文化宣传 企业产品销售 更多服务 实时行业资讯 动态学习交流 分销代理推广 独立知识店铺 覆盖全行业 个人IP打造 独立小程序 私域运营解决方案 公域引流 营销转化 …

源支付V7最新修复版,V2.7.9最新版

源支付V7最新修复版&#xff0c;V2.7.9最新版 注&#xff1a;开发不易&#xff0c;仅限交流学习使用&#xff0c;如商业使用&#xff0c;请支持正版&#xff01; 轻量化的界面 UI, 提供更加便捷的操作体验&#xff0c;让您的系统一目了然 推荐支付宝当面付 - 免 CK - 商家版&a…

JavaScript密码加密解密(纯代码-可直接拉取使用)

抽成组件rsaEncrypt.js import JSEncrypt from jsencrypt/bin/jsencrypt// 密钥对生成 http://web.chacuo.net/netrsakeypairconst publicKey MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBANL378k3RiZHWx5AfJqdH9xRNBmD9wGD\n 2iRe41HdTNF8RUhNnHit5NpMNtGL0NPTSSpPjjI1kJfVorRvaQerUgk…

【NeRF数据集】LLFF格式数据集处理colmap结果记录

【NeRF数据集】LLFF格式数据集处理colmap结果记录 1. 基于colmap的配置与运行&#xff0c;获取图像及其对应的相机位姿&#xff1b;2. 使用 LLFF格式数据集制作&#xff0c;将匹配的位姿转化为LLFF格式&#xff1b;3. 上传所需文件和设置配置文件&#xff0c;将所需文件上传至N…

numpy数组05-numpy的索引和切片

numpy中可以对其中的某一行&#xff08;列&#xff09;进行数据处理。 上节课我们已经取出了CSV文件中的二维数组&#xff0c;本次对这个二维数组为例&#xff0c;进行练习操作。 示例代码如下&#xff1a; import numpy as npus_file_path "US_video_data_numbers.cs…

5大自动化测试的Python框架,看完就能涨薪5k 【实用干货】

目前&#xff0c;它在Tiobe指数中排名第三个&#xff0c;仅次于Java和C。随着该编程语言的广泛使用&#xff0c;基于Python的自动化测试框架也应运而生&#xff0c;且不断发展与丰富。 因此&#xff0c;开发与测试人员在为手头的项目选择测试框架时&#xff0c;需要考虑许多方…

FX3U-1PG使用

作为扩展模块的安装 伺服驱动器的参数设置 1.设置为0&#xff0c;为位置模式&#xff0c;发送脉冲控制&#xff1b; 2. 设置旋转方向&#xff0c;以及脉冲方式&#xff0c;通常设置为01&#xff0c;因为FX3U-1PG只支持正方向脉冲负方向脉冲方式&#xff1b; 当然想改变电机运…

显化的跨渠道整合:迅腾文化助力企业拓展销售渠道

显化的跨渠道整合&#xff1a;迅腾文化助力企业拓展销售渠道 在数字化浪潮的推动下&#xff0c;企业的销售渠道日趋多元化。面对复杂多变的市场环境&#xff0c;企业需要一种有效的方式来整合各个销售渠道&#xff0c;以实现更高效的销售拓展。广州迅腾文化传播有限公司的显化…

MySQL中的六种日志你都懂么?不懂!那就必须看看

&#x1f604; 19年之后由于某些原因断更了三年&#xff0c;23年重新扬帆起航&#xff0c;推出更多优质博文&#xff0c;希望大家多多支持&#xff5e; &#x1f337; 古之立大事者&#xff0c;不惟有超世之才&#xff0c;亦必有坚忍不拔之志 &#x1f390; 个人CSND主页——Mi…

Linux 进程(七) 进程地址空间

虚拟地址/线性地址 学习c语言的时候我们经常会用到 “&” 符号&#xff0c;以及下面这张表&#xff0c;那么取出来的地址是否对应的是真实的物理地址呢&#xff1f;下面我们来写代码一步一步的验证。 从上面这张图不难看出&#xff0c;从正文代码&#xff0c;到命令行参数环…

当你明白了这句话,你就开始赚到钱了

哈喽&#xff0c;大家好啊&#xff0c;我是雷工&#xff01; 曾经看到稻盛和夫说过这么一句话&#xff1a; 其实钱并不是赚来的&#xff0c;而是你帮助别人解决问题后给你的回报。 这天发生了件小事&#xff0c;让我对这句话有了更深的认识。 一、 缘起 自从开始记笔记&…

洗地机有没有必要买?家用洗地机推荐

随着生活水平的提高&#xff0c;人们对家居环境的卫生和清洁要求也相应提高&#xff0c;因此家用洗地机作为一种现代化的清洁工具逐渐受到了广泛关注和青睐。那么&#xff0c;洗地机到底有没有必要买? 洗地机对于一些家庭确实是非常有必要的&#xff0c;特别是对于工作繁忙、…

springboot整合webservice使用总结

因为做的项目中用到了webservice,所以在此总结一下。 一、webservice简介 Web Service也叫XML Web Service, WebService是一种可以接收从Internet或者Intranet上的其它系统中传递过来的请求&#xff0c;轻量级的独立的通讯技术。是通过SOAP在Web上提供的软件服务&#xff0c;使…

YOLOv7独家原创改进:提出一种新的Shape IoU,更加关注边界框本身的形状和尺度,对小目标检测也很友好 | 2023.12.29收录

💡💡💡本文改进:一种新的Shape IoU方法,该方法可以通过关注边界框本身的形状和尺度来计算损失,解决边界盒的形状和规模等固有属性对边界盒回归的影响。 💡💡💡对小目标检测涨点明显,在VisDrone2019、PASCAL VOC均有涨点 收录YOLOv7原创自研 https://blog.csdn…