免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: send_linux
打印 上一主题 下一主题

[其他] 版本控制之道---Git时代已经来到?(获奖名单已公布-2012-10-30) [复制链接]

论坛徽章:
5
狮子座
日期:2013-08-20 10:12:24午马
日期:2013-11-23 18:04:102015年辞旧岁徽章
日期:2015-03-03 16:54:152015亚冠之德黑兰石油
日期:2015-06-29 18:11:1115-16赛季CBA联赛之新疆
日期:2024-02-21 10:00:53
31 [报告]
发表于 2012-10-11 14:59 |只看该作者
回复 26# OwnWaterloo


    版本控制对每个人来说都很重要。丢过一次代码,写错一段实现就明白了。

删代码的时候爽,等到发现此路不通的时候就痛不欲生了。大二时的教训,一辈子都记得哇……

说的很对。SVN的问题就是记录和分享耦合了。这也是大多数公司的SVN的问题。早期,我们是采用私下拷贝并用通讯工具传递的方式——手动版本控制+手动分享,后期采用了git。

git是记录和分享都达到最佳的一个工具。

只是有一个问题:记录可以不分享,我能不能分享但不记录?当前工作,只想给别人看到,但是我不想记录,怎么办?

git,直接新建一个分支,记录,分享,然后抽个时间删掉这个分支…………但是还是比较麻烦,如果能直接支持就好了……短期的频繁分享,需要add + commit + push,如果能够很快速地做这件事情就很完美了。

论坛徽章:
36
IT运维版块每日发帖之星
日期:2016-04-10 06:20:00IT运维版块每日发帖之星
日期:2016-04-16 06:20:0015-16赛季CBA联赛之广东
日期:2016-04-16 19:59:32IT运维版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-19 06:20:00每日论坛发贴之星
日期:2016-04-19 06:20:00IT运维版块每日发帖之星
日期:2016-04-25 06:20:00IT运维版块每日发帖之星
日期:2016-05-06 06:20:00IT运维版块每日发帖之星
日期:2016-05-08 06:20:00IT运维版块每日发帖之星
日期:2016-05-13 06:20:00IT运维版块每日发帖之星
日期:2016-05-28 06:20:00每日论坛发贴之星
日期:2016-05-28 06:20:00
32 [报告]
发表于 2012-10-11 15:00 |只看该作者
回复 23# send_linux
这书必须得给了


   

论坛徽章:
5
狮子座
日期:2013-08-20 10:12:24午马
日期:2013-11-23 18:04:102015年辞旧岁徽章
日期:2015-03-03 16:54:152015亚冠之德黑兰石油
日期:2015-06-29 18:11:1115-16赛季CBA联赛之新疆
日期:2024-02-21 10:00:53
33 [报告]
发表于 2012-10-11 15:02 |只看该作者
回复 32# xiaopan3322


    所以我才分享了公开SVN和“私下”git的诀窍呀~~嘿嘿~其实还有一个git-svn,但是依赖perl,我自己项目里面又有perl,环境不好搭,就没用,也不太了解~

论坛徽章:
5
狮子座
日期:2013-08-20 10:12:24午马
日期:2013-11-23 18:04:102015年辞旧岁徽章
日期:2015-03-03 16:54:152015亚冠之德黑兰石油
日期:2015-06-29 18:11:1115-16赛季CBA联赛之新疆
日期:2024-02-21 10:00:53
34 [报告]
发表于 2012-10-11 15:03 |只看该作者
回复 34# Godbach


   

论坛徽章:
5
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:50:282015年亚洲杯之朝鲜
日期:2015-03-13 22:47:33IT运维版块每日发帖之星
日期:2016-01-09 06:20:00IT运维版块每周发帖之星
日期:2016-03-07 16:27:44
35 [报告]
发表于 2012-10-11 15:06 |只看该作者
回复 15# send_linux


    支持老大!

必须的。稍后。

论坛徽章:
6
金牛座
日期:2013-10-08 10:19:10技术图书徽章
日期:2013-10-14 16:24:09CU十二周年纪念徽章
日期:2013-10-24 15:41:34狮子座
日期:2013-11-24 19:26:19未羊
日期:2014-01-23 15:50:002015年亚洲杯之阿联酋
日期:2015-05-09 14:36:15
36 [报告]
发表于 2012-10-11 15:07 |只看该作者
回复 1# send_linux
之前单位都是用git管理,换了单位,这边用的svn。
残酷的现实是公司的项目用svn管理,自己的项目用git管理;欣慰的是linux下svn和git的命令集比较相似

   

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
37 [报告]
发表于 2012-10-11 15:09 |只看该作者
svn一塌糊涂,但是还是继续要用。经常出现各种莫名其妙的错误~~

论坛徽章:
2
青铜圣斗士
日期:2015-11-26 06:15:59数据库技术版块每日发帖之星
日期:2016-07-24 06:20:00
38 [报告]
发表于 2012-10-11 15:14 |只看该作者
回复 1# send_linux

1、你的团队是通过什么方式来做版块控制的?您的选择是什么?
2、您能简单谈谈您的选择愿意,以及为何做出这样的选择?
3、您在使用这些工具或者方法的时候,分享一些非常有用的小技巧:)


必须像命题作文一样的回答么。。。那前面那个回复算是回答第2点吧。。。

第1点,git,git。

关于第3点, 先说一句: 我也是Windows出身的程序员, 也不擅长命令行的操作。 但最终扭转过来了, git是一个很重要的原因。
也就是说, 请担心命令行不方便的人民群众放心。 很有可能在熟悉git之后会感觉gui不方便了。 乌龟git我早就删了。

技巧什么的根本说不完, 不如去stackoverflow.com这样的网站上各种问来得更快。
这里只说元技巧 —— 将自己融入软件的一部分。


一个无法让用户自己参与的软件的学习是很困难的。
它有一个功能清单,而用户有自己的一个需求清单。这两种不一定总是能立即匹配上。
有可能从功能清单里学到的在之后的一段时间才能被用上 —— 前提是还没忘记。
有可能当前出现的需求在那个清单里一下子找不到 —— 因为太长了。


而一个用户可以自己参与的软件就不是这样。
以git为例,它也有一个清单, 而且应该比svn更长。
但它又有一些最基本的命令,也有一个很清晰的仓库格式说明。这些不需要花多少时间就能学会。
不需要将清单全部学光, 只需要把这些基本的core学完, git的清单能提供的功能就尽在掌握了。

可以先只学一小部分。 之后遇见了什么需求一定可以被解决。 —— 最坏不过就是自己编程,写写胶水shell代码而已。
在这期间,没闲暇就忙自己的其他事, 有闲暇就可以随手翻翻git提供的完整功能清单, 以备不时之需, 又或者找到了之前通过自己编程才能解决的需求的对应功能, 之后就不需要再自己编程了。
总之, 不需要有一个很长的学习时间才能成为掌握这个软件所能提供的功能, 才能成为达人。


以个人经验来说, svn用2年依然是个菜, git用半年后就没遇见过解决不了的问题。



PS:能不能加一个dracs。。。
这货的概念比git还要先进,但确实太小众了,实际使用上会遇到各种问题。。。
比如code hosting的选择面少得多,也没有足够人力去解决international什么的。。。
如果只是作为私人的代码仓库,我就会考虑用它而不是git。 但我有很多需要记录的东西不是代码, 文件名包含non-ascii, 就很不给力了。
我又不想用两种工具分别记录,所以不得不退回git。。。

论坛徽章:
5
狮子座
日期:2013-08-20 10:12:24午马
日期:2013-11-23 18:04:102015年辞旧岁徽章
日期:2015-03-03 16:54:152015亚冠之德黑兰石油
日期:2015-06-29 18:11:1115-16赛季CBA联赛之新疆
日期:2024-02-21 10:00:53
39 [报告]
发表于 2012-10-11 15:31 |只看该作者
回复 40# OwnWaterloo


    dracs是丑陋的女人的意思………………

那个,能不能介绍一下dracs到底先进在什么地方?我觉得没什么比git更先进的了……

论坛徽章:
2
青铜圣斗士
日期:2015-11-26 06:15:59数据库技术版块每日发帖之星
日期:2016-07-24 06:20:00
40 [报告]
发表于 2012-10-11 15:38 |只看该作者
starwing83 发表于 2012-10-11 14:59
版本控制对每个人来说都很重要。丢过一次代码,写错一段实现就明白了。
删代码的时候爽,等到发现此路不通的时候就痛不欲生了。大二时的教训,一辈子都记得哇……


git允许删代码,不代表这事不应该慎重考虑啊。。。  rm可以 rm -rf /。。。 但用rm的人都知道它可以。。。 所以一再小心。。。
但允许修改、删除就可以刺激记录的欲望。 例如如果一个文件系统不允许删除(或者删除很麻烦) 你下载文件时会不会有顾忌?


对那些犹豫不决的代码, 可以建个专门的分支保存。 甚至还可以提交到一个服务器上去(只要不是大家约定好拉取的那个就行), 然后本地就可以删了。
可以有一个相当长的时间留给你考虑: 这些代码到底有没有用。
但总之, 提交到大家约定好拉取的那个仓库的东西是可以做得很干净。


哪怕真的误删除了, 只要没有git gc, 都是可以找回来的。。。


我还没有发生过想要的代码被误删(说的是git, svn要删除太麻烦, 没用过)找不回来只能重写的情况。。。
手快了,shift + del了倒是出现过几次。。。


starwing83 发表于 2012-10-11 14:59
说的很对。SVN的问题就是记录和分享耦合了。这也是大多数公司的SVN的问题。早期,我们是采用私下拷贝并用通讯工具传递的方式——手动版本控制+手动分享,后期采用了git。
git是记录和分享都达到最佳的一个工具。

你看这是不是回到了最初的"手工版本控制工具"的原始社会去了。。。  svn就是会有这样的问题。。。


starwing83 发表于 2012-10-11 14:59
只是有一个问题:记录可以不分享,我能不能分享但不记录?当前工作,只想给别人看到,但是我不想记录,怎么办?

git,直接新建一个分支,记录,分享,然后抽个时间删掉这个分支…………但是还是比较麻烦,如果能直接支持就好了……短期的频繁分享,需要add + commit + push,如果能够很快速地做这件事情就很完美了。

删个本地分支是轻轻松松的事情。。。
如果真有这个需求, 我估计git提供的完整功能清单里不会有这样的功能。。。
不过无论它到底有没有提供, 自己写段胶水shell先顶着嘛。。。 又不难。。。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP