1000copy
V2EX  ›  问与答

git 能火是人性的光辉

  •  
  •   1000copy · Apr 23, 2016 · 3724 views
  •   You need to sign in to view this topic
    This topic created in 3833 days ago, the information mentioned may be changed or developed.

    闪开让我来。

    依我看,说 git 好的,都没有说到点子上。说 git 不好的,可能真是不懂 linus 创造 git 的上下文。要是拿企业内开发的上下文来看 git ,可是看不出什么好的。我呢,也就是试着去懂吧。

    =======

    我觉得这问题不能仅仅考虑技术,得考虑人。 我暂时忘掉 SVN ,为了 Git 而学习 Git ,以 Linus 的思维替代我的思维。然后我发现了如此深刻的人性洞察和简单的应对方法。 linux 的工作流使得 git 是显然必须的。以下内容是我看了 linus 在 google 的演讲后写的,因此很多就是对 linus 思想的 DUMP 。

    1. 自洽的、最少依赖的个人工作得到支持。 1000 多人的 Linux 开发团队是分布在世界各地的,使用 git 也就不必依赖中心服务器、不必需要很少的网络。就在自己的电脑上就有完整的仓库,可以做任何版本管理,除了分享代码。 SVN 显然是不合适的,因为单点故障大家甚至无法提交,更加无法开分支,这是无法忍受的。
    2. 剔除害群之马很简单。如果 Linus 经过观察,发现有些程序员特别容易出漏子,那么封杀的办法就是不必拉取即可。实际上 Linus 就是这样干过。如果是 SVN ,就变成了撤销惹麻烦的开发者的账号或者限定他的访问范围,并且从仓库中移除麻烦的代码提交。就是说,封杀的方法在 git 而言,是不做某事即可, SVN 是做一系列事情才可以。一正一反,大家可以体会一下。 Linus 喜欢前者,并且得心应手。这样的工作流程就避开了很多“政治”问题,让他的集成代码过程变得主动。
    3. 可以使用信任网络。 Linux 太大了,不可能完全看完补丁代码的方式来识别信任,这个 Linus 曾经干过,最后的结果当然是放弃。如果发现有些程序员特别优秀,他只要选择拉取他们的实现。这些程序员也只是拉取他们信任的程序员的实现。这样的信任网络是可以层次化的,因此对应于 1000 多人的开发者来说,这样做确实可以通过分层的信任网络达成大规模的团队协作。如果是 SVN ,我不知道如何做可以更好 4.轻量的分支开销鼓励大量被使用。对于这样的团队,为了敏捷的迭代,如果有想法就分支(这样的开发隔离想法是很有价值的),那么在 svn 上分支是海量的并且全局的大家互相影响,因此是要命的。而对于 Git 总数当然是海量,但是每个人的分支都在自己的仓库内,不会影响到他人。且分支无需连接服务器,因此是飞速的。

    所以,对于 Linux 团队来说, Git 是必须的。特别是它的分布式,可以帮助建立信任网络,减少政治问题。它的设计,首先是关于人的,关于最佳的工作流程的、技术这是这些思想的完美载体。 Linus 不仅仅创建了 Linux ,也实际上管理着一个巨大的团队,做法就是用一套工具提供信任网络和少政治的工作流程,从而可以不管。说 Linus 是此团队的“仁君”,并非缪赞。想想混乱的现实世界,我确实对这个高手团队的管理方法感到敬佩。

    这解释了开源代码项目使用 git 的热潮。它符合人性的光辉。 ==============技术上的支持 ##自身优势

    1. 自己可以玩。服务器下架,启动不了,客户端离线,都可以继续工作。什么都不缺
    2. 分支。随时开分支以便实验想法,不干扰别人
    3. 大部分都可以本地,本地就是快
    4. 提交粒度大小随意,最少一行,参见 hunk

    ##伙伴优势

    1. github 太火,人多高手多,热闹
    2. github 社交特性,引发 PK ,不再一个人

    ##对手形势 我就用过 svn 和 git ,就比较他们两.svn 已经药丸 https://www.google.com/trends/explore#q=git%2C%20svn&cmpt=q&tz=Etc%2FGMT-8

    这些年企业内的开发流程乏善可陈,开源界红红火火,那些整日贫乏的面孔,不去学习开源界的性感怎么办。所以, git 就这么火了呗。

    10 replies  •  2017-07-18 18:35:22 +08:00
    tracyone
        1
    tracyone  
       Apr 23, 2016 via Android
    好东西懂得人自然懂。
    ming2281
        2
    ming2281  
       Apr 24, 2016
    当初 github 如果同时支持 hg,说不定 hg 也会火
    :)
    vm
        3
    vm  
       Apr 24, 2016   ❤️ 2
    看这篇文章的末尾部分,”关于 Git 的礼节“。
    http://www.yinwang.org/blog-cn/2015/03/03/how-to-respect-a-programmer
    des
        4
    des  
       Apr 24, 2016 via Android
    二进制文件还是不太适合用 git
    tyfulcrum
        5
    tyfulcrum  
       Apr 24, 2016 via iPhone
    我觉得 hg 要简单好用一些…奈何 git 用的人多。
    Felldeadbird
        6
    Felldeadbird  
       Apr 24, 2016 via iPhone
    其实主要还是分布式和分支实用
    julyclyde
        7
    julyclyde  
       Apr 24, 2016
    连 cvs 都能火,还有啥不能火的
    这世界门槛低
    ChaosPark
        8
    ChaosPark  
       Apr 24, 2016
    @vm 王垠变化比较大啊,关于 Linux 和 Unix 的观点完全和过去不同了。不过我还是更加同意他现在的观点。
    mengzhuo
        9
    mengzhuo  
       Apr 25, 2016 via iPhone
    @ChaosPark 关键是他不知道自己早就成了 worse is better 的受害者
    1000copy
        10
    1000copy  
    OP
       Jul 18, 2017 via iPhone
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   6088 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 50ms · UTC 03:13 · PVG 11:13 · LAX 20:13 · JFK 23:13
    ♥ Do have faith in what you're doing.