git与svn对比

git 与 svn 对比

 

git的使用不须要联机

SVN集中式版本控制:每一个人的版本都是提交到服务器,服务器坏了就雪崩。
git分布式版本控制:  安全,每人本地有个版本库,每一个人均可以充当‘服务器git

它的使用流程不须要联机,能够先将对代码的修改,保存在本机。等上网以后,再实时推送过去。github

 

提交代码,查看日志,推送具备闪电般的速度

git提交是个本地操做,相对svn闪电通常。安全

本地包含了完整的日志,无需网络服务器

git向远程服务器推送提交内容相比svn更快网络

 

每一个git存储库只有一个git目录

和 SVN不一样,一个Git项目通常只在项目的根目录下建一个“.git”目录,而SVN则会在项目的每个目录下建一个”.svn”目录ssh

 

git项目移植更方便

Git把全部的历史提交信息所有存储在“Git目录”里,它就是一个Git项目的仓库;你对本地的源代码进行编辑修改后建立的提交也都会先保存在这里面,而后再推送到远端的服务器。当咱们我把项目目录和“Git目录”一块儿拷到其它电脑里,它能立刻正常的工做(全部的提交信息全都保存在Git目录里);甚至能够只把“Git目录”拷走也行,可是要再签出(checkout)一次。分布式

git支持tag属性

svn在模型上是没有分支和tag的。tag是经过目录权限限制(对开发只读)来保证不变。svn

git模型上支持tag,保证只读。工具

 

合并对提交过程的保留

git:合并操做保留原有的提交过程(即保留了合并来源的做者、提交次数、分离提交的内容)。spa

svn:合并操做把来源多个提交合并成了一个合并提交,即在提交历史中Crash了天然的提交过程。

 

更强大智能的合并能力

git:重命名(不管文件还有目录)提交 , 能够合并上文件重命名前的这些文件的提交。

svn:重命名(不管文件还有目录)提交后,你本地/或是分支上 有文件重命名前的这些文件的修改或提交,在作合并操做时,恭喜,你会碰上传说中难搞的树冲突

由于害怕svn树冲突,在包名调整(重命名目录)或类名调整(重命名文件)前,我不得不先向一块儿开发的组员广播:

  1. 提交你的修改
  2. 暂停相关类的修改
  3. 我开始作调整
  4. 等我修改好后,你再开始修改

廉价好用的本地分支

git:有本地分支

svn:无本地分支

git能够方便建立本地分支,且建立分支的时间是O(1),即瞬间就建立好了。因为分支能够是本地的,也就不存在svn目录权限的问题。

 git能保证数据的完整性

git中全部数据在存储前都计算校验和,而后以校验来引用,因此你在传输中丢失文件,git都知道。具有断点续传功能。

缺点

(1)git的入门,稍微有点麻烦,须要在本机建立一个ssh的钥匙。

(2)图形化操做界面不及svn那么好用

 

git和github的关系

git是一个很是强大的版本管理工具。github则是一个基于git的日益流行的开源项目托管库。

 

Git把全部的历史提交信息所有存储在“Git目录”里,它就是一个Git项目的仓库;你对本地的源代码进行编辑修改后建立的提交也都会先保存在这里面,而后再推送到远端的服务器。当咱们我把项目目录和“Git目录”一块儿拷到其它电脑里,它能立刻正常的工做(全部的提交信息全都保存在Git目录里);甚至能够只把“Git目录”拷走也行,可是要再签出(checkout)一次。

相关文章
相关标签/搜索