饭牛牛 发表于 2017-4-21 10:48:05

[PADS] git 的强大不是我能想象的 -- 记PCB 版本控制

本帖最后由 饭牛牛 于 2017-4-21 15:20 编辑

不安于现状,我又开始试用 git 来对原理图和线路板时行版本控制。

由于 原理图和 PCB 的文件都是二进制文件,git 管理并不怎么友好。

第一个想法就是将二进制转成文本文件,并使用脚本将 物料清单也自动导出,方便在git 客户端比较。

另外在使用 git 时发现还有一个 git Flow,这是我之前没有注意的,有这个 git Flow 使用 git 就清晰多了。跟着 git Flow 一步一步处理水到渠成,没有之前那么迷漫的使用 git。

和之前使用的 svn 相比,git 不是强大一点点,最直接就是 git 的标签系统,和svn 的 文件夹系统不是一个等级的,可以很方便的打标签,开分支,还有就是离线提交,可以将记录先提交到本地,然后再一起提交到服务器,或者可以干脆不用服务器。



待续。。。


git 管理 PCB 文件参考项目。
https://git.oschina.net/fanniu/t17tpl02g-pcb-main


2017-04-21 15:20
* 修改标题 “想像”为 “想象”。

shawn_bu 发表于 2017-4-21 10:52:39

可以找一台机器装一个https://about.gitlab.com/ 就更爽了。

饭牛牛 发表于 2017-4-21 10:55:38

shawn_bu 发表于 2017-4-21 10:52
可以找一台机器装一个https://about.gitlab.com/ 就更爽了。

感觉就是一个强大的 git 项目管理嘛,不错不错。

simplorer 发表于 2017-4-21 10:59:17

代码管理去年从SVN全面转移到了Git,
PCB和SCH也用Git管理,不过基本是大版本管理,比如说测试版本提交一次,稳定1版本提交一次,稳定2版本提交一次。

饭牛牛 发表于 2017-4-21 11:06:57

simplorer 发表于 2017-4-21 10:59
代码管理去年从SVN全面转移到了Git,
PCB和SCH也用Git管理,不过基本是大版本管理,比如说测试版本提交一次 ...

你那个是版本发布吧,一般每天要提交很多很多次。

也是慢慢把新项目转到 git。
接触了 git 感觉就好像又开始了新的一辈子。

shawn_bu 发表于 2017-4-21 11:10:24

饭牛牛 发表于 2017-4-21 10:55
感觉就是一个强大的 git 项目管理嘛,不错不错。

类似于开源版本的github。

simplorer 发表于 2017-4-21 11:11:19

饭牛牛 发表于 2017-4-21 11:06
你那个是版本发布吧,一般每天要提交很多很多次。

也是慢慢把新项目转到 git。


SCH每次修改提交太麻烦了,不像代码那么直观,我修改了什么,稍微注释就行了。
SCH每次提交都必须详细注明修改内容,所以我认为Git对于SCH和PCB等非文档流的资料的管理还是不直观,
当然Git设计目的也只是针对代码而已。

饭牛牛 发表于 2017-4-21 11:14:05

本帖最后由 饭牛牛 于 2017-4-21 11:15 编辑

simplorer 发表于 2017-4-21 11:11
SCH每次修改提交太麻烦了,不像代码那么直观,我修改了什么,稍微注释就行了。
SCH每次提交都必须详细注 ...

的确 git 管理代码太方便了,本来git 就是为代码而生的。
但可以使用 git 这个优势,我做了一个处理将 SCH 也导出 txt 文件,然后每次保存都自动生成 txt 文件,可以 git 客户端直接查看差异。

饭牛牛 发表于 2017-4-21 11:24:34

shawn_bu 发表于 2017-4-21 11:10
类似于开源版本的github。

好东西。

zxq1990 发表于 2017-4-21 11:28:39

好东西,准备学习下。

fengyunyu 发表于 2017-4-21 11:41:39

git的版本回溯确实好用

kydl2345 发表于 2017-4-21 11:44:30

怎么用git管理sch和pcb有教程吗?

Nexus 发表于 2017-4-21 11:49:23

我不知道你这个能不能直接比较两次的代码。git上面能够直接比较出来你修改的部分,而且能够构建各类分支用于解决bug,并且解决完bug后合并到dev上。真的很强大。如果pcb能够直观看到修改在哪里的话,确实很棒!

gwj221 发表于 2017-4-21 11:49:43

如果没有外网或者单机能不能搞git

饭牛牛 发表于 2017-4-21 12:06:12

gwj221 发表于 2017-4-21 11:49
如果没有外网或者单机能不能搞git

git 就是为这个而生的。




({:lol:} 以上说的太绝对,git 有离线提交功能。)

饭牛牛 发表于 2017-4-21 12:07:17

kydl2345 发表于 2017-4-21 11:44
怎么用git管理sch和pcb有教程吗?

目前没有教程,我还在自己摸索中。

zxq6 发表于 2017-4-21 12:15:31

能说说比svn好的地方么?

kinsno 发表于 2017-4-21 12:49:33

饭牛牛 发表于 2017-4-21 12:07
目前没有教程,我还在自己摸索中。

等待你出教程。。
git和github有啥区别?
一个是单机版,自己找PC当服务器,一个是老外提供服务器给全人类用的网络版?
不是太明白。。





avr-arm 发表于 2017-4-21 13:37:51

一直是重度git使用者。

mainbp 发表于 2017-4-21 13:49:41

我遇到的问题是不能合并,不知楼主遇到没

dswkl11 发表于 2017-4-21 13:52:48

shawn_bu 发表于 2017-4-21 10:52
可以找一台机器装一个https://about.gitlab.com/ 就更爽了。

要在linux主机上装哦,windows不行啊

shawn_bu 发表于 2017-4-21 14:04:51

dswkl11 发表于 2017-4-21 13:52
要在linux主机上装哦,windows不行啊

Linux也很容易嘛。

如果是个人用那都用不着gitlab。

如果是公司内部team用,图便宜搞一台HP GEN8装个linux就很好用了。或者买一个云主机一年也才几百块钱。

Excellence 发表于 2017-4-21 14:10:56

跟着学习一下。

flamma 发表于 2017-4-21 15:11:00

觉得装gitlab麻烦的可以试试Gogs,go语言开发,全平台,中文,资源占用小。

饭牛牛 发表于 2017-4-21 15:12:42

flamma 发表于 2017-4-21 15:11
觉得装gitlab麻烦的可以试试Gogs,go语言开发,全平台,中文,资源占用小。

非常感谢。

myxiaonia 发表于 2017-4-21 15:27:14

tortoisegit暂时还不行,没有tortoisesvn那么功能完整

饭牛牛 发表于 2017-4-21 15:29:14

myxiaonia 发表于 2017-4-21 15:27
tortoisegit暂时还不行,没有tortoisesvn那么功能完整

我用 Source Tree。

FireHe 发表于 2017-4-21 15:38:08

饭牛牛 发表于 2017-4-21 15:29
我用 Source Tree。

请问牛牛,装Source Tree之后,还需要安装别的什么软件吗?

你是在本地还是上传到网络上?

我一直想用Git,但一直没搞起来,之前装过 Windows Git,但库的初始化都磕磕碰碰,没搞明白

jeffwei 发表于 2017-4-21 15:44:13

用虚拟机装1个gitlab ,用了几年了

一天的蓝 发表于 2017-4-21 15:50:00

有自己主机的推荐gogs 比gitlab简单多了;没有主机也可以用ustc oschina的git服务;不限私有库数量的,open source 的github就好
基本转到git了 各种分支 切换,每天做完 git push {:lol:};如果是win10环境推荐用bash的git

simplorer 发表于 2017-4-22 08:17:49

饭牛牛 发表于 2017-4-21 11:14
的确 git 管理代码太方便了,本来git 就是为代码而生的。
但可以使用 git 这个优势,我做了一个处理将 SC ...

可惜通过二进制看不出sch或者pcb具体做了什么修改。

饭牛牛 发表于 2017-4-22 09:37:13

simplorer 发表于 2017-4-22 08:17
可惜通过二进制看不出sch或者pcb具体做了什么修改。

原理图和PCB都可以转成文本文件,这是短期,如果有能力之后可以做一个专门的比较软件。

饭牛牛 发表于 2017-4-22 09:40:26

FireHe 发表于 2017-4-21 15:38
请问牛牛,装Source Tree之后,还需要安装别的什么软件吗?

你是在本地还是上传到网络上?


装 source tree 就可以,还有 git。
我我的是本地,有的是有远程服务器。

饭牛牛 发表于 2017-4-22 09:41:56

myxiaonia 发表于 2017-4-21 15:27
tortoisegit暂时还不行,没有tortoisesvn那么功能完整

昨天试了下,感觉还行呀,速度挺快的。
还有什么问题。

dreampet 发表于 2017-4-22 09:56:55

小团队或者家里有NAS的话,可以考虑装个Gitlab, Gitlab 的中文版目前是我在维护更新:https://gitlab.com/xhang/gitlab

yj_yulin 发表于 2017-4-22 10:01:46

dreampet 发表于 2017-4-22 09:56
小团队或者家里有NAS的话,可以考虑装个Gitlab, Gitlab 的中文版目前是我在维护更新:https://gitlab.com/x ...

哇,论坛确实是各种高人在啊

dreampet 发表于 2017-4-22 10:03:25

一天的蓝 发表于 2017-4-21 15:50
有自己主机的推荐gogs 比gitlab简单多了;没有主机也可以用ustc oschina的git服务;不限私有库数量的,open ...

如果喜欢gogs这种风格的话,建议迁移到gitea上,gogs是个人维护,而gitea是基于gogs的开源社区维护版本,目前已经远远超越gogs

myxiaonia 发表于 2017-4-22 10:52:12

饭牛牛 发表于 2017-4-22 09:41
昨天试了下,感觉还行呀,速度挺快的。
还有什么问题。

装tortoisegit还得先装git呢,tortoisesvn就不需要这么做了,看大家都说git好,我也快被影响了

myxiaonia 发表于 2017-4-22 10:53:23

dreampet 发表于 2017-4-22 09:56
小团队或者家里有NAS的话,可以考虑装个Gitlab, Gitlab 的中文版目前是我在维护更新:https://gitlab.com/x ...

赞,牛人啊

饭牛牛 发表于 2017-4-22 10:54:48

myxiaonia 发表于 2017-4-22 10:52
装tortoisegit还得先装git呢,tortoisesvn就不需要这么做了,看大家都说git好,我也快被影响了 ...

老乡赶紧入坑。

wuyya 发表于 2017-4-22 11:04:37

学习git,推荐一个教程 http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000 。
自己用的话,连中心库都可以不要,只向本地库提交也是可以的,不过就要做好备份工作了,谁能保证硬盘不坏{:tongue:}
git也可以不要服务器,直接把中心库建在U盘,或者网络共享盘、SD卡......自己用,爱怎么玩都行,团队用的话,还是要鼓捣一个服务器。要搭建服务器也不难,而且有大把的服务器端软件可以选择,这是Git的一大优势,SVN就只有VisualSVN,还是收费的。
客户端软件也有很多选择,Tortoise Git、SourceTree都是很不错的。

zjykwym 发表于 2017-4-22 11:11:51

硬件没这个必要,首先版本不会太多,而且也不太会像软件那也有那么多人的协作。如果版本太多要考虑的是哪里出了问题,而不是管理复杂本身。

pan.xuehan 发表于 2017-4-22 11:13:11

git官网下载太慢了,换到CSDN很快就下载好了。正在试用,感谢楼主的信息。

饭牛牛 发表于 2017-4-22 11:46:40

wuyya 发表于 2017-4-22 11:04
学习git,推荐一个教程 http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017 ...
教程不错。

自己用的话,连中心库都可以不要,只向本地库提交也是可以的,不过就要做好备份工作了,谁能保证硬盘不坏
我用坚果云,100% 安全同步。

git也可以不要服务器,直接把中心库建在U盘,或者网络共享盘、SD卡......自己用,爱怎么玩都行,团队用的话,还是要鼓捣一个服务器。要搭建服务器也不难,而且有大把的服务器端软件可以选择,这是Git的一大优势,SVN就只有VisualSVN,还是收费的。
客户端软件也有很多选择,Tortoise Git、SourceTree都是很不错的。
我用的 VisualSVN 是免费的,是官方下载的哦。
不是说 VisualSVN 客户端收费吗?

dreampet 发表于 2017-4-22 11:49:08

虽说我本人就是重度的Git使用者,但像PCB和原理图这种二进制文件是不适合用Git做版本管理的,因为一旦出现版本冲突就只能二选一,没法合并。同样的,Git本身很多优秀的机制如合并请求,分支维护也不起作用。我现在对团队的要求,也是只有代码通过Gitlab服务器来管理,而其他项目文档则是通过Redmine的文件版本功能进行维护并结合CI服务器做二进制发布。

饭牛牛 发表于 2017-4-22 12:52:03

dreampet 发表于 2017-4-22 11:49
虽说我本人就是重度的Git使用者,但像PCB和原理图这种二进制文件是不适合用Git做版本管理的,因为一旦出现 ...

大神好。

这些都不用担心,PADS 可以导出文本文件比较。
而且目前也没有比 git 更合适的版本管理软件了。
所以还是继续使用 git。

kinsno 发表于 2017-4-22 20:55:51

饭牛牛 发表于 2017-4-22 11:46
教程不错。




你用坚果云?
你是额外买了一个云主机吗?几个G?谁家的?
请问,你是在本地干活的同时,将所有资料通过坚果云同步到云主机一份吗?


avr-arm 发表于 2017-4-22 21:06:26

一直在用github,我记得群晖里有GitLab。

饭牛牛 发表于 2017-4-23 18:54:16

kinsno 发表于 2017-4-22 20:55
你用坚果云?
你是额外买了一个云主机吗?几个G?谁家的?
请问,你是在本地干活的同时,将所有资料通过 ...

坚果云是同步盘,目前还没用到云主机,有用公司的服务器做了一个版本管理服务器。

xuelang1984 发表于 2017-4-23 19:42:58

几号记号

littlebadbay 发表于 2017-4-23 20:18:40

试过用svn来管理原理图和pcb版本,后来发现非文本文件用svn真没什么用,还是回归了打包备份

饭牛牛 发表于 2017-7-31 11:18:01

别人是先学命令行.
我是通过图形界面反过来学命令行. {:biggrin:}

饭牛牛 发表于 2017-10-9 17:09:55

饭牛牛 发表于 2017-4-21 15:29
我用 Source Tree。

Source Tree 功能强大,但太笨重了。
已经改用 gitHub Desktop, 打开速度超快。
以后慢慢再过渡到 git 命令行。

饭牛牛 发表于 2017-10-9 17:14:04

本帖最后由 饭牛牛 于 2017-10-10 08:59 编辑

已经做出脚本,在保存时自动生成零件列表,然后每次提交前可以看到详细的修改记录。

格式如下:
https://gitee.com/F4NNIU/t17tpl02g-pcb-main/blob/master/txt/T17TPL02G-PCB-MAIN.partlist.txt


github Desktop 界面如下:

饭牛牛 发表于 2017-10-10 12:46:01

git Flow 不是必须的,只是作为前期的参考,当一个团队有自己的流程时,就可以使用自己的 git Flow。

liujq74193 发表于 2017-11-21 16:00:54

有机会也尝试下git 管理

kebaojun305 发表于 2017-11-21 16:06:24

本帖最后由 kebaojun305 于 2017-11-21 16:10 编辑

饭牛牛 发表于 2017-4-21 10:55
感觉就是一个强大的 git 项目管理嘛,不错不错。

windows上的 git服务器还是 https://gogs.io/   windows 平台是最简单的gitweb服务器。

已经有坛友推荐了。{:titter:}

kebaojun305 发表于 2017-11-21 16:09:00

一天的蓝 发表于 2017-4-21 15:50
有自己主机的推荐gogs 比gitlab简单多了;没有主机也可以用ustc oschina的git服务;不限私有库数量的,open ...

我就用自己家的宽带 整了个gogs的git web服务器做代码管理

cdtlzhou 发表于 2017-11-21 17:21:23

在linux上用docker运行个Gitlab容器就是了,方便的很。

nanfang2000 发表于 2017-11-22 12:17:43

个人用,上Bitbucket就可以了,不用自己维护服务器,用了几年了

chenwei0423 发表于 2017-11-22 13:37:29

一直想找一个git方式管理硬件设计资料的方法

饭牛牛 发表于 2017-11-23 11:30:02

可以将原理图和 PCB 做成不同的分支,方便管理版本。
git 每个分支都是完全独立的。

饭牛牛 发表于 2017-11-23 11:32:15

chenwei0423 发表于 2017-11-22 13:37
一直想找一个git方式管理硬件设计资料的方法

使用 git 当备份功能都比以前的打包方便,进步很多。
关键目前 EDA 软件还没有想到这一步,AD 算是走的比较前的,已经用上 SVN。

tomzbj 发表于 2017-11-23 11:38:04

从svn切到git有好几年了~
我是一个大git库, 所有预开发/原型/测试项目全放一起, 差不多定型了再独立出来建专门的库.
一个大库放所有放弃/暂时搁置的项目.
一个大库放封装/自建器件/第三方库/3D机械模型之类.
然后把git的reposity放dropbox里, 就是得爱国同步.

myxiaonia 发表于 2017-11-23 12:28:50

littlebadbay 发表于 2017-4-23 20:18
试过用svn来管理原理图和pcb版本,后来发现非文本文件用svn真没什么用,还是回归了打包备份 ...

ad支持svn,支持文件比较功能哦

myxiaonia 发表于 2017-11-23 12:29:57

哪天tortoisegit把git完全整合了,这个目标还没完成

饭牛牛 发表于 2017-11-23 14:14:39

myxiaonia 发表于 2017-11-23 12:29
哪天tortoisegit把git完全整合了,这个目标还没完成

这个无所谓啦,git 本来就是独立的。

fenglove 发表于 2017-11-23 14:28:40

这个和SVN相比较有什么优点啊?

llysc 发表于 2017-11-23 15:38:58

我们公司访问不了github网站,有趣吧~

randyzzy 发表于 2017-12-14 18:02:17

我没有一点版本管理软件基础,使用git时弹出一下内容,是什么意思啊,改如何处理
Administrator@TY-123 MINGW64 /f/test (master)
$ git commit

*** Please tell me who you are.

Run

git config --global user.email "you@example.com"
git config --global user.name "Your Name"

to set your account's default identity.
Omit --global to set the identity only in this repository.

fatal: empty ident name (for <randyzzy@126.com>) not allowed

哪位指导一下。谢谢!

饭牛牛 发表于 2017-12-14 22:03:36

randyzzy 发表于 2017-12-14 18:02
我没有一点版本管理软件基础,使用git时弹出一下内容,是什么意思啊,改如何处理
Administrator@TY-123 MIN ...

需要设置你的身份。

leicai05 发表于 2017-12-14 22:37:34

饭牛牛 发表于 2017-12-14 22:03
需要设置你的身份。

最近也学习用git ,单个的文件操作我会了,add commit push等等...
我想请教一下,如果我是一个keil4的工程,我需要保持哪些文件?工程文件需要保存吗?
工程中一般怎么操作了?

randyzzy 发表于 2017-12-15 12:37:09

饭牛牛 发表于 2017-12-14 22:03
需要设置你的身份。

我使用命令git config --global user.email "you@example.com"
git config --global user.name "Your Name"设置了,但好像还是那样

eovlon 发表于 2017-12-15 16:06:40

Altium Designer 好像是支持SVN的,有在SVN中做版本管理的原理图,打开之后,有菜单去做比对,查看有哪些修改的。

pldjn 发表于 2017-12-15 17:14:34

我在用Gitblit,因为这个可以装在WinServer系统里所以就一直用这个了。

avr-arm 发表于 2017-12-16 09:21:45

现在几乎到了不用git就不敢写代码的地步

饭牛牛 发表于 2017-12-16 11:19:19

leicai05 发表于 2017-12-14 22:37
最近也学习用git ,单个的文件操作我会了,add commit push等等...
我想请教一下,如果我是一个keil4的工 ...

obj lst bak 之类的文件在 git 中忽略。

饭牛牛 发表于 2017-12-16 11:19:59

randyzzy 发表于 2017-12-15 12:37
我使用命令git config --global user.email "you@example.com"
git config --global user.name "Your ...

不应该呀,正常设置身份后就可以了。

饭牛牛 发表于 2017-12-16 12:22:47

eovlon 发表于 2017-12-15 16:06
Altium Designer 好像是支持SVN的,有在SVN中做版本管理的原理图,打开之后,有菜单去做比对,查看有哪些修 ...


Altium Designer 对集成 SVN 真的非常不错。
让我用 PADS 羡慕啊。

zchong 发表于 2018-4-4 19:57:18

dreampet 发表于 2017-4-22 09:56
小团队或者家里有NAS的话,可以考虑装个Gitlab, Gitlab 的中文版目前是我在维护更新:https://gitlab.com/x ...

DS216j好像没法安装,悲剧啊

颜靖峰 发表于 2018-4-5 20:03:39

能否github??

饭牛牛 发表于 2018-4-8 08:47:35

颜靖峰 发表于 2018-4-5 20:03
能否github??

可以。




byrin219 发表于 2018-4-8 09:07:53

自从认识了git后,SVN 就再也没有用过。

饭牛牛 发表于 2018-4-9 10:35:07

byrin219 发表于 2018-4-8 09:07
自从认识了git后,SVN 就再也没有用过。

把 svn 库也转到 git 上了。

yddoofrank 发表于 2018-4-9 13:38:14

zxq6 发表于 2017-4-21 12:15
能说说比svn好的地方么?

同问,熟练使用SVN中

electricdream 发表于 2018-4-9 15:39:54

硬件版本管理比软件头疼多了

lyping1987 发表于 2018-4-9 16:37:30

git遇到的最大问题是中文乱码问题

饭牛牛 发表于 2018-4-9 17:58:56

lyping1987 发表于 2018-4-9 16:37
git遇到的最大问题是中文乱码问题

不会。


jcrorxp 发表于 2018-4-9 18:12:27

最近找了几个国内的git仓库, coding是一个,但是只有512MB,所有项目共用储存空间,太少了, 后来找着找着 发现腾讯居然也有, 能无限建立项目,每个项目512M    https://cloud.tencent.com/product/devmaster

电子小生 发表于 2018-4-9 18:49:29

这里有Git教程,https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000

饭牛牛 发表于 2018-4-10 08:21:37

electricdream 发表于 2018-4-9 15:39
硬件版本管理比软件头疼多了

我也在摸索。
希望可以和 git 结合,git 的版本管理强大,看怎么来管理 PCB 版本。

饭牛牛 发表于 2018-4-10 08:23:44

饭牛牛 发表于 2017-10-10 12:46
git Flow 不是必须的,只是作为前期的参考,当一个团队有自己的流程时,就可以使用自己的 git Flow。 ...

终于理解这句的意思了。

git Flow 最开始是向导,用熟了后就可以灵活使用git,之后可以不用考虑 git Flow。

lwbjun 发表于 2018-4-10 09:52:06

git确实比svn强大

ro321 发表于 2018-4-10 11:58:58

git 管理代码太方便, 有空试试管PCB.

zhenhuajiang 发表于 2018-4-10 15:44:42

是时候试下git 了;

dddddddwolf 发表于 2018-4-10 16:23:11

还在摸索,没尝到甜头,继续努力

b260123292 发表于 2018-4-10 16:56:49

用惯了SVN一直没法适应GIT,曾经试用过一段时间,后来还是用回SVN了。

饭牛牛 发表于 2018-4-10 20:36:57

b260123292 发表于 2018-4-10 16:56
用惯了SVN一直没法适应GIT,曾经试用过一段时间,后来还是用回SVN了。

我也是折腾好好久好久,终于有点甜头了。

b260123292 发表于 2018-4-10 21:15:55

饭牛牛 发表于 2018-4-10 20:36
我也是折腾好好久好久,终于有点甜头了。

GIT最大的优势是分布式,但往往又是因为分布式,团队的人一直没提交到服务器,到最后提交的时候累死人,还不如SVN来得轻松。

athena_min 发表于 2018-4-10 23:31:08

正准备研究Git
页: [1] 2
查看完整版本: [PADS] git 的强大不是我能想象的 -- 记PCB 版本控制