git和svn的区别是什么?怎样使用git进行协同开发?
git通过保存一系列不同时刻的快照,来记录文件在不同时刻的差异。git的分支,本质上是指向提交对象的可变指针。git的默认分支名是master。在多次提交操作之后,你其实已经有一个指向最后那个提交对象的master分支。master分支会在每次提交时自动向前移动。git和svn的区别是什么?
1、定义不同
svn:Apache Subversion是Apache许可证下的开源软件版本和版本控制系统。
git:Git是由Linus Torvalds在2005年开发的开源分布式版本控制系统。它强调速度和数据完整性。
2、模型类型不同
svn:svn是集中式模型。
git:Git 是一个分布式模型。
3、存储单元不同
svn:SVN按照原始文件存储,体积较大。SVN是按文件所有的资源控制系统都是把文件的元信息隐藏在一个类似.svn,.cvs等的文件夹里。
git:Git按照元数据方式存储,体积很小,GIT把内容按元数据方式存储,如果你把.git目录的体积大小跟.svn比较,你会发现它们差距很大。因为,.git目录是处于你的机器上的一个克隆版的版本库,它拥有中心版本库上所有的东西,例如标签,分支,版本记录等。
4、是否拥有全局版本号
Git没有一个全局版本号,而SVN有——目前为止这是跟SVN相比Git缺少的最大的一个特征。
5、内容完整性不同
Git的内容的完整性要优于SVN:GIT的内容存储使用的是SHA-1哈希算法。这能确保代码内容的完整性,确保在遇到磁盘故障和网络问题时降低对版本库的破坏。
6、版本库不同
svn:SVN只能有一个指定中央版本库。当这个中央版本库有问题时,所有工作成员都一起瘫痪直到版本库维修完毕或者新的版本库设立完成。
git:Git可以有无限个版本库。或者,更正确的说法,每一个Git都是一个版本库,区别是它们是否拥有活跃目录(Git Working Tree)。如果主要版本库发生了什么事,工作成员仍然可以在自己的本地版本库(local repository)提交,等待主要版本库恢复即可。工作成员也可以提交到其他的版本库。
7、克隆目录速度不同
克隆一份全新的目录以同样拥有五个分支来说,git要快于svn,SVN是同时复制5个版本的文件,也就是说重复五次同样的动作。而Git只是获取文件的每个版本的元素,然后只载入主要的分支(master),克隆一个拥有将近一万个提交(commit),五个分支,每个分支有大约1500个文件的 SVN,耗了将近一个小时,而Git只用了区区的1分钟!
8、分支不同
svn:分支在SVN中一点不特别,就是版本库中的另外的一个目录。如果你想知道是否合并了一个分支,你需要手工运行像这样的命令svn propget svn:mergeinfo,来确认代码是否被合并。
git:处理GIT的分支却是相当的简单和有趣。你可以从同一个工作目录下快速的在几个分支间切换。你很容易发现未被合并的分支,你能简单而快捷的合并这些文件。
9、创建目录不同
svn:在SVN中,我们在每个文件夹中创建.svn目录。
git:在 git 中,我们只创建 .git 目录。
10、特点不同
怎样使用git进行协同开发?
(1)查看分支:我们先通过以下命令查看分支信息git branch
(2)创建与切换分支:使用以下指令从当前分支创建新分支,并切换到新分支
(3)删除分支:经过上面的操作,我们现在已经处在develop分支上,下面我们创建一个新分支,并删除掉新创建的分支# 创建并切换到 feature/211031git checkout -b feature/211031,通过上面的指令我们创建了一个功能分支,假如这个功能不想要了,我们就可以删除掉