教你如何选择Git与SVN

推荐选择方案:偏向美术或文件管理使用SVN,偏向开发使用git。二者也可以结合使用,不同工作环境使用不同的版本管理,发挥各自的优势。

======

作为一名资深的git与SVN的使用者和管理者,下面谈谈两种版本管理工具各自的优势与劣势,以帮助需要的人做出正确的选择。


管理模式

  • Git:分布式
  • SVN:集中式
    > 共同点:
  • Git 跟 SVN都有自己的集中式版本库或服务器。

>不同点:

  • Git 更倾向于被使用于分布式模式,也就是每个开发人员从中心版本库/服务器上克隆一个跟中心版本库一模一样的本地版本库。

分支

> 共同点:二者都可以创建分支、合并分支等操作。

>不同点:

  • 分支方式:git分支是基于某一版本克隆一个完整的版本;SVN分支可以选择版本中某一部分内容作为分支内容。
  • 本地文件路径:git的分支是通过版本管理来切换本地目录显示的版本(分支),同时只能查看/操作一个版本(分支)内容;SVN分支相当于在另一个目录选择性的做了一个备份,可以同时查看操作两个分支的内容。

文件操作与版本控制

> 相同点:对所有文件都有修改记录,可以查看对比还原之前的所有版本。

> 不同点:git偏向于整体项目的版本管理,SVN偏向于文件的版本管理;SVN可以还原单个文件到任一版本,git只能还原整体项目到任意版本。

服务端与客户端

git与SVN都可以在服务端做权限管理,git的服务端通常会附带问题管理功能。
客户端:二者均有GUI界面客户端,SVN客户端界面看起来相对古老,git有很多第三方GUI界面,界面更符合当下审美。

学习成本

git难于SVN,这点对推广影响非常大。

软件支持

侧重美术、文件管理的软件支持SVN较多,侧重开发的软件通常都会支持git。

git与SVN没有绝对的优势或劣势,只看哪个工具更适合。在个人学习或个人项目中,我通常会使用git,因为它有很多云端平台,方便文件存储,如github、码云等,并且可以使用其自带的问题管理系统;对于公司项目如开头所述,依项目定。

你可能感兴趣的:(教你如何选择Git与SVN)