git与svn的主要区别:
- git是目前最流行的分布式版本控制系统,而svn则是典型的集中式版本控制系统。
这里的集中式和分布式,主要区别在与历史版本的保存位置,集中式的历史版本仅保存于中央服务器,且每次提交或下载只能通过中央服务器,而分布式的历史版本通过pull和push命令可同时保存更新到本地库。
主要区别 | 集中式版本控制系统 | 分布式版本控制系统 |
---|---|---|
历史库存放位置 | 集中存放在中央服务器 | 每个人的电脑上都有(即每个节点都是完整仓库) |
commit并记录版本历史 | 需要联网,提交到中央服务器 | 不需要联网,🉑️先提交在本地库 |
- git比较适用于以三种情况:
- 脱机情况:分布式系统中,每个电脑上都有历史库(即每个节点都是完整仓库),在脱机情况下可查看全部历史版本,并多次commit;而集中式却只能看到最近一次的下载版本,无历史记录可查。
- 中央服务器数据丢失:在分布式系统中,每台合作的电脑上均有clone的完整历史库和代码库;而集中式系统中,中央服务器的完整历史数据仅此一份,别处没有,彻底丢失。
- 网速差且需要多次commit项目:在分布式系统中,在本地可多次commit并作记录,只有pull(将远程库下载到本地库)和push(将本地库提交到远程库)时需要联网;而集中式系统,每次commit都需要联网,无法离线操作。