一般指的是去中心化;去中心化是分布式的子集。 git 可以在没有中心服务器的情况下完成几乎所有所有工作;而 svn 你总得有一个 server 端充当中央仓库,哪怕是跟 client 装同一台电脑上。 无论是 git 也好、svn 也罢,都是版本控制工具,从来没说自己是团队协作工具。 git 可以在没有一个中央仓库的情况下完成代码的版本控制管理工作,甚至你都不需要联网。比如你需要出差 2 个月,不能连公司内网电脑,但还是得写代码啊,难道这 2 个月内你就干脆不 commit 了,等回公司再一次性提交好几十、几百个文件上去?这时候用 git,你想怎么 commit 怎么 commit、想怎么 revert 怎么 revert,等回公司再 push / merge 就好了。当然了,也可能需要解决冲突,但 svn 不也一样可能冲突? 而且因为可以没有中央仓库,所以 git 中任意两个节点,都可以彼此做交换,也就是每个节点直接的身份是相同的、平等的,不存在 server / client、master / slave 之分。而用 svn,两个 client 想同步代码,你只能先提交到中央仓库、然后另一台从中央仓库上拉取。 以上就是去中心化。
一般指的是去中心化;去中心化是分布式的子集。
git 可以在没有中心服务器的情况下完成几乎所有所有工作;而 svn 你总得有一个 server 端充当中央仓库,哪怕是跟 client 装同一台电脑上。
无论是 git 也好、svn 也罢,都是版本控制工具,从来没说自己是团队协作工具。
git 可以在没有一个中央仓库的情况下完成代码的版本控制管理工作,甚至你都不需要联网。比如你需要出差 2 个月,不能连公司内网电脑,但还是得写代码啊,难道这 2 个月内你就干脆不 commit 了,等回公司再一次性提交好几十、几百个文件上去?这时候用 git,你想怎么 commit 怎么 commit、想怎么 revert 怎么 revert,等回公司再 push / merge 就好了。当然了,也可能需要解决冲突,但 svn 不也一样可能冲突?
而且因为可以没有中央仓库,所以 git 中任意两个节点,都可以彼此做交换,也就是每个节点直接的身份是相同的、平等的,不存在 server / client、master / slave 之分。而用 svn,两个 client 想同步代码,你只能先提交到中央仓库、然后另一台从中央仓库上拉取。
以上就是去中心化。