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

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

注解目录

1、关于 Git

1.1Git 今生

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

1.2Git的爆发

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

2、用Git代码

2.1Git化使用

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

2.2 Git 的远端使用

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

2.3代码拯救纪实

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

3、用Git 管理硬件PCB

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

3.1Git的增量

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

3.2 AD 中的Git

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

3.3PCB 工程的协作开发

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

上面振南讲解了如何使用 Git 来对软件代码进行管理。关于 Git 被最频繁问到的一个问题是:“Git 能不能用来作 PCB 资料的管理?”答案是肯定的。

我先来问广大硬件工程师们一个问题:“你们是如何管理 PCB 工程的版本的呢?”以我这么多年的经历所看到的,很多工程师和公司更在乎的是 PCB 相关资料的留存和安全(就是说有就行,顶多简单地整理一下),在版本管理上似乎并不太在意,或者说没有什么好的办法。关于硬件资料的版本,更多是依赖于工程师自身的素养。比如统一整理到某种存储介质中,可以是一块硬盘,可以是一台设置了权限的共享计算机,或者一个 NAS 服务器,也可以是一个类似于 seafile 的网盘。

对于这些资料的追溯,则要靠完整的技术文档。这样的管理方式,看似严谨,硬件资料都在公司的掌控之中,但实际上最终难免落得个版本凌乱,七零八落的下场。很多时候,你面对着众多的 PCB 版本,并不能确定哪一个是最终可用于生产的版本,因为往往并不是最新的版本就是可用的版本。

OK.那我们向硬件也引人 Git 这一版本管理利器.来看看通过它如何来管理硬件版本。

3

用Git 管理硬件PCB

Git的增量式管理

Git对于文件的管理采用的是增量式管理,如图4.42所示。

图4.42 Git的增量式文件管理

Git 在文本管理上的优势是显而易见的。但是像 PCB、Word、PDF 等这些文件,都是二进制的,不同版本的文件相同之处比较少,此时再用增量式管理,基本无异于文件拷贝。所以,用Git 管理二进制文件,会让仓库体积比较大。而且,二进制文件是没法直接合并的。不过,这些并不妨碍我们使用 Git 来进行管理。因为 Git 针对二进制或者大文件有自己的一套管理方法(比如压缩或者 LFS,大家可以去百度一下)。

我向很多硬件工程师推荐了 Git,让他们用来管理 PCB 资料的版本。但是他们反映最多的问题是:不太适应纯命令行的操作方式,那些命令总是容易忘。这让他们产生了抵触心理所以我仔细研究了 AD 对 Git 的界面化支持。

3.2 AD中的 Git

鉴于 Git 的广泛应用,很多开发环境都已经与 Git 无缝衔接,而并不需要涉及太多的命令行操作。AD(Altium Designer)作为最著名的 EDA 工具之一,自然是支持 Git 的。

1.本地化操作

振南以一个 PCB 工程为例来进行介绍,如图 4.43 所示。

首先创建一个本地仓库 git init,如图 4.44 所示。

接下来我们的操作基本上都在 AD 软件中来完成(本章的讲解基于 AD 22)。单击右键PCB 工程文件,将其添加到仓库中来,如图 4.45 所示。

接下来,我们尝试将整个 PCB 工程进行提交,如图 4.46 所示

在 Comment 中可以填入关于此次提交的一些说明,这类似于 git commit-m,如图 4.47所示

随后我们可以看到工程视图中的文件右边出现了图标,如图 4.48 所示。

这种图标的意思是“Ahead of server”,即等待推到远端仓库。这是因为刚才只进行了commit 而没有 push,等后面我们设置了远端仓库的链接,就可以执行 push 了。

我们尝试对某个文件进行修改,如图 4.49 所示。

此时这个文件右边将出现一个新的图标“Open and locally modified”,对其再一次进行提交,如图 4.50 所示。

在 AD中的这些操作,与 Git 是完全同步的,其实 AD 就是在背后调用 Git。我们可以用git log 查看一下,如图 4.51 所示。

图4.43 在工程目录下单击右键打开 GitBash

图4.44 创建一个本地仓库

图4.45 将 PCB工程文件添加到仓库之中

图4.46 将整个 PCB工程进行提交

图4.47 填写 Comment后进行提交

图4.48 提交之后 PCB工程相关文件右边出现了图标

图4.49 对某个原理图文件进行修改

图4.50 对 PCB工程再一次进行提交

图4.51 通过git log查看提交记录

2.远端操作

接下来,我们将本地仓库推到远端服务器。首先,要在远端服务器上建立一个仓库(GitHub 上创建仓库前面章节已有介绍,这里不再赘述)。使用 Git 命令行向仓库添加远端仓库的链接,如图 4.52 所示。

图4.52 通过gitremoteadd添加远端仓库链

这里我们仍然使用 HTTPS 链接,一面是方便,省了生成 SSH-key 的麻烦;另一方面是 AD的 CVS 系统目前只支持 HTTPS。随后,右键 push 即可将仓库推到 GitHub 上了。这个过程中,可能会提示输入用户名密码,输人即可。

相关文章
|
2月前
|
安全 开发工具 git
git合并错了,我想回退到之前的版本
git合并错了,我想回退到之前的版本
|
5月前
|
开发工具 数据中心 git
详解IDEA git 版本回滚
详解IDEA git 版本回滚
232 0
|
4月前
|
开发工具 git
unable to index file ‘~$git提交版本号.xlsx‘
unable to index file ‘~$git提交版本号.xlsx‘
|
5月前
|
开发工具 git
技巧分享:Git怎么修改已经提交版本的版本注释
技巧分享:Git怎么修改已经提交版本的版本注释
57 4
|
4月前
|
开发工具 git
git 恢复单个文件到指定版本
git 恢复单个文件到指定版本
50 0
|
5月前
|
开发工具 git
Git恢复之前版本的两种方法reset、revert(图文详解)
Git恢复之前版本的两种方法reset、revert(图文详解)
523 0
|
5月前
|
敏捷开发 测试技术 持续交付
【git分支管理策略】如何高效的管理好代码版本
【git分支管理策略】如何高效的管理好代码版本
466 0
|
6月前
|
Linux 开发工具 数据安全/隐私保护
分布式版本控制git
分布式版本控制git
|
3月前
|
敏捷开发 存储 开发工具
版本控制系统的选择:Git与SVN的比较
【8月更文挑战第14天】Git和SVN都是优秀的版本控制系统,它们各自具有独特的优势和适用场景。在选择版本控制系统时,需要根据具体的项目需求、团队特点和开发模式来综合考量。对于需要分布式团队协作、高效处理大型项目或采用敏捷开发模式的团队来说,Git是一个更好的选择。而对于传统团队、集中式开发或简单项目来说,SVN可能更加合适。无论选择哪种版本控制系统,都应该充分利用其提供的工具和功能来提高代码质量和开发效率。
|
2月前
|
存储 Linux 开发工具
掌握版本控制的艺术:Git 技巧深度解析
在软件开发中,版本控制对于代码管理和团队协作至关重要。Git 作为最流行的分布式版本控制系统,凭借其强大的功能和灵活性成为开发者必备工具。本文深入探讨 Git 的高级技巧和最佳实践,包括交互式暂存、撤销提交、合并冲突处理等,帮助你更高效地使用 Git。通过遵循清晰的提交信息、保持提交原子性、利用分支开发等最佳实践,开发者可以更好地管理代码库,提升协作效率。