振南技术干货集:研发版本乱到“妈不认”? Git!(1)

注解目录

1、关于 Git

1.1Git 今生

(Git 和 Linux 的生父都是 Linus,振南给你讲讲当初关于 Git 的爱恨情愁,其背后其实是开源与闭源两左阵营的明争暗斗。)

1.2Git的爆发

(Git 超越时代的分布式思想。振南再给你讲讲旧金山三个年轻人创办 GitHub,打败Google,逆袭上位的创业故事。据说 GitHub 服务器要放到火星去? )

2、用Git代码

2.1Git化使用

(以实例来讲解代码仓库的创建、提交、分支等基础内容。)

2.2 Git 的远端使用

(以实例来讲解仓库的克隆、推送等基础内容。)

2.3代实(Git 绝不会把代码弄丢。一次有惊无险的代码追回经历,根源是对 Git 机制理解不深。)

3、用Git 管理硬件PCB

(对于硬件资源你是如何管理的? final _final _打死不改_final_1.2.zip? 还是用 Git 吧。)

3.1Git的增量

(Git 具体是如何对资源进行管理的? )

3.2 AD 中的Git

(AD 是原生支持 Git 的,让我们把它利用起来。)

3.3PCB 工程的协作开发

(团队协作中的冲突是如何产生的?如何解决冲突? )

某某项目(final-version).zip、某某项目(final-final-version).zip,某某项目(final-final-打死不改-version).zip,某某项目(final-final-打死不改-inal-version-2021-3-21).zip,哭笑不得。我想很多人都干过这种事,别问我怎么知道的。使用标识或者日期来对研发项目进行版本管理.是一种形同虚设的方案。在这种管理方式下,最终的结果就是产生一大堆的带有各种标识的文件备份。凭借这些标识根本无从进行版本追溯。但值得肯定的是,大家都有基本的版本管理意识和需求,只是缺少一个实用有效的方法或工具。

万物皆有迭代,有迭代就有版本,有版本就有 Git。早日使用 Git,早日脱离苦海。

信 Git,得永生!

1

关于 Git

在 2015 年之前,可以说我的版本管理也是一团糟。我被动地的使用过 svn、soucesafe 这些版本控制工具,但是都不得其法。根本原因是我并不知道理想的版本管理应该是怎样的,直到我上手 Git。

Git,我们可以单独写出一本书来,因为它足够博大精深,甚至已经成了版本管理的实际标准,如图 4.1 所示。

1.1 Git的前世今生


Git 已经成为现在最优秀的分布式版本管理工具,没有之一。它的管理理念到现在仍然是很先进的。说起 Git 的起源,其实还是有些无奈的,可以说它是另一个大规模软件项目的副产品。

Linux 大家都知道,它的作者是世界上最伟大的程序员 Lius Torvalds(林纳斯·托瓦兹)。1969 年,Linus Torvalds 生于芬兰一个知识分子家庭。1988 年,Linus 进入赫尔辛基大学计算机科学系就读。芬兰人性格内敛,这与 Linus 的行事方式不谋而合,他对开源的信念是近乎执着的。在兴趣的驱使下,Linus 创造并发布了自制的开源操作系统,取名为 Linux。有人问过他,为什么要叫 Linux。他回答:我是个任性的杂种,我把所有我做的项目以我自己命名。看来程序员是偏执自恋而可爱的,连通神的 Linus Torvalds 也不例外。


图4.1 《Git版本控制管理》一书

Linux 是一个非常宏大的软件项目,单靠 Linus一个人是不可能完成的。开源软件的核心要意就是集思广益,团队协作,你在享用别人的代码的同时,也要为它创造贡献。在 2002 年以前,Linux 的维护研发是由世界各地的程序员共同参与的,他们写出来的代码全部都交给Linus 去合并(这个工作量可想而知)。2002 年以后,经过十多年的发展参与的人越来越多,而个人合并难以避免的就是效率低下,这也直接引起了维护者们的不满。难道没有工具可以实现代码的自动合并吗?当然是有的。当时已经存在一些版本控制工具了,像 CVS、SVN等,但是这些工具都是要收费的,而且使用的还是集中式版本管理方式。这就受到了 Linus 的唾弃(他坚定地认为,软件应该是免费开源的)。

后来 Linus 选择了 BitKeeper 分布式版本控制工具(BK)来作为 Linux 的版本管理工具这个工具的研发公司 BitMover,也是出于人道博爱的精神给他们免费使用了。但是 Linux 社区的很多贡献者对 BK 非常不满,原因是它不开源。既有怨气,必有勇士。一位叫 AndrewTridgell 的程序员违反 BK 的使用原则,对其进行了逆向工程,写了一个可以连接 BK 仓库的外挂。BitMover 认为他反编译了 BK。Linus 花了很多时间精力从中协调磋商,但是最终还是失败了。2005 年,BitMover 同 Linux 内核开源社区的合作关系结束。

Linus 一怒之下,决定自己造车轮。他基于使用 BK 时的经验教训,仅花了 2 周就开发出了自己的版本管理系统,也就是后来的 Git。Linus 怒而不乱,其实他早有此意并对市面上多个版本管理方案进行过评估。他提出了极具前瞻性的三个诉求:可靠性、高效、分布式。后来,这三个特性被视为 Git 的核心灵魂所在,深远地影响了 Git 及其他同类软件的后续发展,

1.2 Git的爆发


伟大的软件一定是很好地解决了行业内长期饱受诟病的一些重大问题和痛点。在 Git 问世之前很多的版本管理软件都采用服务器集中式管理方式,如图 4.2 所示。


在这种管理方式下,程序员每次进行开发前,都要先从服务器拉取版本,在开发完成之后.再将它推回到服务器。这带来两个问题:(1)开发用的电脑必须联网:(2)因为代码都存在远端服务器上,一旦服务器出现问题都是灾难性的,程序员的工作可能付诸东流。

Git 反其道而行之,它采用分布式的版本管理方式(Linus 起初选择 BK 也是因为它是分布式的)。分布式的主要思想是去中心化和本地化。程序员可以从服务器上拉取项目的完整仓库到本地,然后以离线的方式进行本地化的开发和提交。用 Linus 的话说:你可以在本地做很多事情,而完全不依赖于服务器和网络。而且本地化的管理,使得类似于 commit、版本回滚等操作都变得非常快速(集中式的版本管理所有操作都是直接与服务器进行远程访问的.所以总是要等待服务器的回应,这造成它行动缓慢,效率不高)。

Git 成功地替代了 BK,成为 Linux 的版本控制的原生方案,但它仍然只不过是服务于局部人群的一个工具而已。它如星星之火,要燎原还差一场风暴。要得到行业内普遍认同和接受是任重道远的。这个时候就不得不引出一个伟大的网站,是它最终成就了 Git,即 GitHub。这背后是三个年轻人创业的故事。

2007 年旧金山三个年轻人觉得 Git 是个好东西,就搞了一个公司,名字叫 GitHub。第二年上线了使用 Ruby 编写的同名网站 GitHub,这是一个基于 Git 的免费代码托管网站(有付费服务)。十年间,该网站迅速蹿红,击败了实力雄厚的 Google Code,成为全世界最受欢迎的代码托管网站。2018 年 6 月,GitHub 被财大气粗的 Microsoft 收购。2019 年 1月 GitHub 宣布用户可以免费创建私有仓库。根据 2018 年 0 月的 GtHub 年度报告显示,目前有 3100 万开发者创建了 9600 万个项目仓库,有 210 万家企业入驻。

相比 Git,GitHub 提供了更多的功能,比如 Web 管理界面、评论、组织、点赞、关注、图表俨然已经是一个社交网站了,大家围绕着开源项目进行使用、讨论和贡献等。

关于 GitHub 的历史和里程碑大家可以去百度一下,这里就不赘述了。

GitHub 是世界上最大的开源代码仓库,这是程序员的天堂。在这里,你可以站在无数高手的肩膀上,高效而高质量地完成自己的开发。在你打开 www.github.com 的一瞬间,你已经是开源主义军团中的一名战士了,如图 4.3 所示。

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

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

相关文章

普华永道于进博会首发“企业数据资源会计处理一体化平台”

11月6日,在第六届中国国际进口博览会上,普华永道发布企业数据资源会计处理一体化平台(英文名为Data Accounting Platform,简称DAP)。该产品以普华永道“五步法”数据资源入表路径为理论依据,依托多年来普华…

现在个人想上架微信小游戏已经这么难了吗...

点击上方亿元程序员关注和★星标 引言 大家好,最近我突然想起来我还有一款微信小游戏还没有上架,于是捣鼓了一天把游戏完善了一下,然后准备提交审核,却发现异常的艰难… 1.为什么难? 相信大家都大概知道&#xff0c…

【EI会议征稿】JPCS独立出版-第五届新材料与清洁能源国际学术会议(ICAMCE 2024)

JPCS独立出版-第五届新材料与清洁能源国际学术会议(ICAMCE 2024) 2024 5th International Conference on Advanced Material and Clean Energy 第五届新材料与清洁能源国际学术会议(ICAMCE 2024)将于2024年2月23-25日在中国▪长沙…

lenovo联想小新 Air-14 2019 AMD平台API版(81NJ)原装出厂Windows10系统

下载链接:https://pan.baidu.com/s/1HCC66EH4UOcgofRx5_v1oA?pwdlgqw 提取码:lgqw 原厂系统自带所有驱动、出厂主题壁纸、系统属性专属LOGO标志、Office办公软件、联想电脑管家等预装程序 所需要工具:16G或以上的U盘 文件格式&#xf…

GZ038 物联网应用开发赛题第1套

2023年全国职业院校技能大赛 高职组 物联网应用开发 任 务 书 (第1套卷) 工位号:______________ 第一部分 竞赛须知 一、竞赛要求 1、正确使用工具,操作安全规范; 2、竞赛过程中如有异议,可向现场考评人员反映,不得扰乱赛场秩序; 3、遵守赛场纪律,尊重考评人员…

【漏洞复现】BYTEVALUE智能流控路由器存在命令执行

【漏洞介绍】 百为智能流控路由器 /goform/webRead/open 路由的 ?path 参数存在有回显的命令注入漏洞。攻击者可通过该漏洞在服务器端执行命令,写入后门,获取服务器权限,从而获取路由器权限。 【指纹】 title”BYTEVALUE 智能流控路由器”…

151. 反转字符串中的单词

151. 反转字符串中的单词 原题链接:完成情况:解题思路:参考代码:错误经验吸取 原题链接: 151. 反转字符串中的单词 https://leetcode.cn/problems/reverse-words-in-a-string/description/ 完成情况: 解…

ai批量剪辑矩阵无人直播一站式托管系统源头技术开发

1.全店IP形象打造----剪辑 全店IP打造模式为场景组合,需要在每个场景内按照顺序分别上传短视频素材,会与选中的音乐、标题文案组合生成有逻辑顺序的视频。可调配标题字号大小、音频音量大小。如想要携带团购地址可设置POI。可开启团购引导动画、镜头转场…

AI时代产品经理升级之道:ChatGPT让产品经理插上翅膀

文章目录 一、ChatGPT简介二、ChatGPT在产品经理工作中的应用1. 快速获取用户反馈2. 智能分析竞品3. 智能推荐产品4.分析市场趋势5.优化产品功能 三、总结与展望《AI时代产品经理升级之道:ChatGPT让产品经理插上翅膀》亮点内容简介目录作者简介获取方式 随着人工智能…

火山引擎公共云·城市分享会:共享云经验,一起向未来

数智化时代的来临,不仅激发了行业对云计算的资源需求,也重构了云计算的技术架构及产品布局,给业务场景带来更多可能性,让云计算成为企业走向高效治理的一剂“良方”。随着业务的多样化、复杂化,企业应该如何借助云计算…

各种业务场景调用API代理的API接口教程(附带电商平台api接口商品详情数据接入示例)

API代理的API接口在各种业务场景中具有广泛的应用,本文将介绍哪些业务场景可以使用API代理的API接口,并提供详细的调用教程和代码演示,同时,我们还将讨论在不同场景下使用API代理的API接口所带来的好处。 哪些业务场景可以使用API…

NAS 扩容简明指南:使用各种外设给 NAS 们扩容

说起来有趣,NAS 除了“不同设备共享存储”这个功能之外,最重要的功能就是为设备扩容,但是 NAS 自己的存储容量不够了,又该如何。 ​这篇文章分享下我目前使用外设给 NAS 扩容的思路,如何以相对低的成本来获取更大的容…

竞赛 目标检测-行人车辆检测流量计数

文章目录 前言1\. 目标检测概况1.1 什么是目标检测?1.2 发展阶段 2\. 行人检测2.1 行人检测简介2.2 行人检测技术难点2.3 行人检测实现效果2.4 关键代码-训练过程 最后 前言 🔥 优质竞赛项目系列,今天要分享的是 行人车辆目标检测计数系统 …

【系统救援】 Ubuntu重启失败,报错:UNEXPECTED INCONSISTENCY; RUN fsck MANUALLY

问题定位及处理 查看错误信息:/dev/sda3 contains a file system with errors, check forced. /dev/sda3: Inodes that were part of a corrupted orphan linked list found. /dev/sda3: UNEXPECTED INCONSISTENCY; RUN fsck MANUALLY. (i.e., without -a or -p o…

【数据结构】堆详解!(图解+源码)

🎥 屿小夏 : 个人主页 🔥个人专栏 : 数据结构解析 🌄 莫道桑榆晚,为霞尚满天! 文章目录 🌤️前言🌤️堆的理论☁️二叉树的顺序存储☁️堆的概念 🌤️堆的实现…

GoLong的学习之路(二十三)进阶,语法之并发(go最重要的特点)(锁,sync包,原子操作)

这章是我并发系列中最后的一章。这章主要讲的是锁。但是也会讲上一章channl遗留下的一些没有讲到的内容。select关键字的用法,以及错误的一些channl用法。废话不多说。。。 文章目录 select多路复用通道错误示例并发安全和锁问题描述互斥锁读写互斥锁 syncsync.Wait…

合成数据如何改变制造业

人工智能正在工厂车间使用,以识别生产线中的低效率。它可以有效地预测设备何时需要维护,以避免停机。人工智能被用于发现产品中的缺陷。 为了完成所有这些工作,使用从人工智能应该学习的过程中收集的数据来创建或训练模型。对于缺陷识别&…

定义无向加权图,并使用Pytorch_geometric实现图卷积

首先定义无向边并定义边的权重 import torch import torch.nn as nn from torch_geometric.nn import GCNConv import torch.nn.functional as F from torch_geometric.data import Dataa torch.LongTensor([0, 0, 1, 1, 2, 2, 3, 4]) b torch.LongTensor([0, 1, 2, 3, 1, 5,…

【前端】TypeScript核心知识点讲解

1.TypeScript简介及入门案例 (1)什么是TypeScript? TypeScript 是 JavaScript 的一个超集,支持 ECMAScript 6 (ES6)标准。 TypeScript 由微软开发的自由和开源的编程语言。 TypeScript 设计目标是开发大…

【IP-guard WebServer 远程命令执行漏洞复现(0day)】

文章目录 一、漏洞说明二、影响版本三、资产测绘四、漏洞复现五、修复建议 一、漏洞说明 IP-guard是由溢信科技股份有限公司开发的一款终端安全管理软件,旨在帮助企业保护终端设备安全、数据安全、管理网络使用和简化IT系统管理。 IP-guard Webserver远程命令执行漏…