【背景】
前几天收到一个任务,要搭建git 服务器,关于git服务器,我当时是一脸的蒙圈,来吧,一起了解一下git服务器,还有github ,git bash ,tortoisegit……
【正文】
1、回顾SVN
提起SVN(subversion),大家应该都不陌生吧,机房合作的时候我们都用到了,它是一个开放源代码的版本控制工具,分为客户端和服务端,最大的特点是支持原子性提交,比起CVS有了很大的进步。svn 可以用来进行基于代码管理的分支管理、权限管理、版本管理等功能,是项目合作开发过程中必不可少的工具之一。来一张图来抛砖引玉,再次熟悉SVN。
2、了解git
概念:
Git是一款免费的、开源的分布式版本控制系统(Distributed Version Control System,简称DVCS),用于敏捷高效地处理任何或小或大的项目。客户端并不只提取最新版本的文件快照,而是把原始的代码仓库完整地镜像下来。这么一来,任何一处协同工作用的服务器发生故障,事后都可以用任何一个镜像出来的本地仓库恢复。因为每一次的提取操作,实际上都是一次对代码仓库的完整备份。
优点:
缺点:
git 没有严格的权限管理控制,一般通过系统设置文件读写权限的方式来做权限控制;
工作目录只能是整个项目。比如checkout、建分支,都是基于整个项目的。而svn可以基于项目中的某一个目录。
工作原理:
文件的三种状态 : 已修改(修改了某个文件,但还没有保存)、已暂存(把已修改的文件放在下次提交时要保存的清单中)、已提交(已被安全保存到本地数据库中)。
文件状态周期图:
文件流转的三个工作区域:工作目录 、暂存区域(也叫索引文件)、git本地仓库
工作流程图:
3、 svn和git的比较
svn : 简单,只是需要一个放代码的地方时是可以的; 好学不好用
git : 脱离网络的限制,对分支和合并有更好的支持;好用不好学
【总结】
知识 : git 和svn的使用场景不一样,svn更适用于项目管理,git仅适用于代码管理,无所谓好与坏,具体选择哪种要看你的需求了;
思想: git这部分内容也是研究了几天,断断续续的,态度的转变也是比较大的:假设自己是最大的, 明确自己要学习东西的大概逻辑,给自己一个非常积极的心态,安排好自己的时间,每次精进一点,总结一点,慢慢积累ing。
PS: 不足之处希望大家多提建议!