SVN和Git的个人笔记和总结,仅供参考和学习,欢迎分享!
先上图(个人整理):
讲概念(个人理解):
SVN:全称Subversion,是一种集中式管理的版本控制工具,分为服务器(VisualSVN)和客户端(TortoiseSVN或SVN插件),客户端每次完成或修改代码需要联网提交到服务端(即版本库Repository)进行存储,冲突主要源于时效性,操作重点在于先更新再提交。
Git:是一种分布式管理的版本控制工具,分为远程版本库(如Github)和本地版本库(.git节点),每个节点都是自己服务器兼客户端(git没有服务器和客户端的说法),完成或修改代码时直接提交到本地版本库节点,无需联网;只有推送和克隆版本库Repository时需要联网和远程版本库进行ssh对接。
每个.git节点的工作机制是:从远程获取或创建工作区(此时为相对主分支master), 经过代码修改更新后(此时为dev分支)add到暂存区,然后commit到分支(即branch)进行管理,再推送到远程库,此过程中会对比master和dev两种分支是否冲突,如果冲突会通过head指针进行分支的合并(合并后为新的相对主分支master),然后进行ssh对接将合并后的本地版本库推送到远程库。
Github:是储存版本库Repository的工具以及一个SSH服务器,提供代码管理服务。Github上的代码是public的,private的收费。
SSH:一种远程登陆和控制主机进行指令操作的手段,提供了公钥和私钥(不需要提供主机管理员帐户和密码进行连接)避免了直接使用密码输入登陆的不安全性和密码泄露问题,分为服务器(如Copssh)和客户端(putty),其公钥( id_rsa.pub)加密,私钥( id_rsa)解密。
软件介绍(个人推荐):
Copssh:用于搭建ssh服务器的工具,常用于搭建公司内部Git的ssh本地服务器(需要复制Git部分文件);
VisualSVN:用于搭建svn服务器的工具,主要功能为用户版本控制和版本库存储;
TortoiseSVN : 封装了SVN客户端核心并进行优化后的SVN客户端工具,作用等价于SVN插件,但细节方面做得美观和优化。
Git : 为git的核心工具,其window版本又称为msysgit,默认使用ssh进行远程推送(即含ssh客户端),等同git插件作用但功能更强大。
TortoiseGit:依赖于Git才能使用的工具(必须安装Git),对Git进行了封装和优化、美化(即“包装壳”),并集成了ssh客户端putty工具的功能,没有完全不影响Git的使用。
</