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

2023-11-11 13:52

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

这篇关于振南技术干货集:研发版本乱到“妈不认”? Git!(1)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/390523

相关文章

大模型研发全揭秘:客服工单数据标注的完整攻略

在人工智能(AI)领域,数据标注是模型训练过程中至关重要的一步。无论你是新手还是有经验的从业者,掌握数据标注的技术细节和常见问题的解决方案都能为你的AI项目增添不少价值。在电信运营商的客服系统中,工单数据是客户问题和解决方案的重要记录。通过对这些工单数据进行有效标注,不仅能够帮助提升客服自动化系统的智能化水平,还能优化客户服务流程,提高客户满意度。本文将详细介绍如何在电信运营商客服工单的背景下进行

跨国公司撤出在华研发中心的启示:中国IT产业的挑战与机遇

近日,IBM中国宣布撤出在华的两大研发中心,这一决定在IT行业引发了广泛的讨论和关注。跨国公司在华研发中心的撤出,不仅对众多IT从业者的职业发展带来了直接的冲击,也引发了人们对全球化背景下中国IT产业竞争力和未来发展方向的深思。面对这一突如其来的变化,我们应如何看待跨国公司的决策?中国IT人才又该如何应对?中国IT产业将何去何从?本文将围绕这些问题展开探讨。 跨国公司撤出的背景与

【专题】2024飞行汽车技术全景报告合集PDF分享(附原数据表)

原文链接: https://tecdat.cn/?p=37628 6月16日,小鹏汇天旅航者X2在北京大兴国际机场临空经济区完成首飞,这也是小鹏汇天的产品在京津冀地区进行的首次飞行。小鹏汇天方面还表示,公司准备量产,并计划今年四季度开启预售小鹏汇天分体式飞行汽车,探索分体式飞行汽车城际通勤。阅读原文,获取专题报告合集全文,解锁文末271份飞行汽车相关行业研究报告。 据悉,业内人士对飞行汽车行业

Android实现任意版本设置默认的锁屏壁纸和桌面壁纸(两张壁纸可不一致)

客户有些需求需要设置默认壁纸和锁屏壁纸  在默认情况下 这两个壁纸是相同的  如果需要默认的锁屏壁纸和桌面壁纸不一样 需要额外修改 Android13实现 替换默认桌面壁纸: 将图片文件替换frameworks/base/core/res/res/drawable-nodpi/default_wallpaper.*  (注意不能是bmp格式) 替换默认锁屏壁纸: 将图片资源放入vendo

金融业开源技术 术语

金融业开源技术  术语 1  范围 本文件界定了金融业开源技术的常用术语。 本文件适用于金融业中涉及开源技术的相关标准及规范性文件制定和信息沟通等活动。

git使用的说明总结

Git使用说明 下载安装(下载地址) macOS: Git - Downloading macOS Windows: Git - Downloading Windows Linux/Unix: Git (git-scm.com) 创建新仓库 本地创建新仓库:创建新文件夹,进入文件夹目录,执行指令 git init ,用以创建新的git 克隆仓库 执行指令用以创建一个本地仓库的

AI(文生语音)-TTS 技术线路探索学习:从拼接式参数化方法到Tacotron端到端输出

AI(文生语音)-TTS 技术线路探索学习:从拼接式参数化方法到Tacotron端到端输出 在数字化时代,文本到语音(Text-to-Speech, TTS)技术已成为人机交互的关键桥梁,无论是为视障人士提供辅助阅读,还是为智能助手注入声音的灵魂,TTS 技术都扮演着至关重要的角色。从最初的拼接式方法到参数化技术,再到现今的深度学习解决方案,TTS 技术经历了一段长足的进步。这篇文章将带您穿越时

系统架构设计师: 信息安全技术

简简单单 Online zuozuo: 简简单单 Online zuozuo 简简单单 Online zuozuo 简简单单 Online zuozuo 简简单单 Online zuozuo :本心、输入输出、结果 简简单单 Online zuozuo : 文章目录 系统架构设计师: 信息安全技术前言信息安全的基本要素:信息安全的范围:安全措施的目标:访问控制技术要素:访问控制包括:等保

git ssh key相关

step1、进入.ssh文件夹   (windows下 下载git客户端)   cd ~/.ssh(windows mkdir ~/.ssh) step2、配置name和email git config --global user.name "你的名称"git config --global user.email "你的邮箱" step3、生成key ssh-keygen

查看提交历史 —— Git 学习笔记 11

查看提交历史 查看提交历史 不带任何选项的git log-p选项--stat 选项--pretty=oneline选项--pretty=format选项git log常用选项列表参考资料 在提交了若干更新,又或者克隆了某个项目之后,你也许想回顾下提交历史。 完成这个任务最简单而又有效的 工具是 git log 命令。 接下来的例子会用一个用于演示的 simplegit