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

简介: 振南技术干货集:研发版本乱到“妈不认”? 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 所示。

相关文章
|
6月前
|
安全 Java 开发工具
Git企业开发级讲解(四)
Git企业开发级讲解(四)
65 0
|
5天前
|
开发工具 git 开发者
|
6月前
|
程序员 Linux 开发工具
振南技术干货集:研发版本乱到“妈不认”? Git!(5)
振南技术干货集:研发版本乱到“妈不认”? Git!(5)
|
6月前
|
存储 安全 Linux
振南技术干货集:研发版本乱到“妈不认”? Git!(4)
振南技术干货集:研发版本乱到“妈不认”? Git!(4)
振南技术干货集:研发版本乱到“妈不认”? Git!(4)
|
3月前
|
存储 安全 开发工具
掌握这5个Git高级命令,让你的开发效率飞速提升!
掌握这5个Git高级命令,让你的开发效率飞速提升!
|
5月前
|
存储 定位技术 开发工具
软件开发Git的五种趋势
该文分析了超过一百万个Git提交,揭示了软件开发的关键趋势。主要发现包括:1) 功能开发和错误修复占总提交的79%,强调了产品增长与质量维护的平衡。2) 高效协作促进代码质量和测试,更多拉取请求与测试相关提交关联。3) 沟通模式不同,拉取请求中注释简洁,错误修复时注释详尽,两者对成功协作同等重要。4) 重构活动普遍,至少1.02%的提交用于重构,提升代码效率和可维护性。5) Git Blame工具使用能减少24%的代码更改行数,增强代码理解和责任意识。这些趋势和实践有助于提升软件开发的效率和质量。
|
6月前
|
Linux 网络安全 开发工具
振南技术干货集:研发版本乱到“妈不认”? Git!(3)
振南技术干货集:研发版本乱到“妈不认”? Git!(3)
|
6月前
|
Shell Linux 开发工具
振南技术干货集:研发版本乱到“妈不认”? Git!(2)
振南技术干货集:研发版本乱到“妈不认”? Git!(2)
|
6月前
|
安全 开发工具 git
Git企业开发级讲解(五)
Git企业开发级讲解(五)
53 0
|
12月前
|
存储 开发工具 git
Git企业开发级讲解(三)
Git企业开发级讲解(三)
67 0

相关实验场景

更多