赞
踩
版本控制是实现开发团队并行开发、提高开发效率的基础。其目的在于对软件开发进程中文件或目录的发展过程提供有效的追踪手段,保证在需要时可回到旧的版本,避免文件的丢失、修改的丢失和相互覆盖,通过对版本库的访问控制避免未经授权的访问和修改,达到有效保护企业软件资产和知识产权的目的。
版本控制的功能在于跟踪记录整个软件的开发过程,包括软件本身和相关文档,以便对不同阶段的软件及相关文档进行表示并进行差别分析,对软件代码进行可撤消的修改,便于汇总不同开发人员所做的修改,辅助协调和管理软件开发团队。
VSS是美国微软公司的产品,目前常用的版本为6.0版。VSS是配置管理的一种很好的入门级的工具。
易学易用是VSS的强项,VSS采用标准的windows操作界面,只要对微软的产品熟悉,就能很快上手。
VSS的配置管理的功能比较基本,提供文件的版本跟踪功能,对于build和基线的管理,VSS的打标签的功能可以提供支持。VSS提供share(共享)、branch(分支)和合并(merge)的功能,对于团队的开发进行支持。VSS不提供对流程的管理功能,如对变更的流程进行控制。
VSS不能提供对异地团队开发的支持。此外VSS只能在windows平台上运行,不能运行在其他操作系统上。
VSS的安全性不高,对于VSS的用户,可以在文件夹上设置不可读,可读,可读/写,可完全控制四级权限。但由于VSS的文件夹是要完全共享给用户后,用户才能进入,所以用户对VSS的文件夹都可以删除。这一点也是VSS的一个比较大的缺点。
微软已不再对VSS提供技术支持。
CVS是开发源代码的配置管理工具,其源代码和安装文件都可以免费下载。
CVS是源于unix的版本控制工具,CVS的服务器管理需要进行各种命令行操作。目前,CVS的客户端有winCVS的图形化界面,服务器端也有CVSNT的版本,易用性正在提高。
CVS的功能除具备VSS的功能外,还具有:
它的客户机/服务器存取方法使得开发者可以从任何因特网的接入点存取最新的代码;它的无限制的版本管理检出(checkout)的模式避免了通常的 因为排它检出模式而引起的人工冲突;它的客户端工具可以在绝大多数的平台上使用。同样,CVS不提供对变更流程的自动管理功能。
一般来说,CVS的权限设置单一,通常只能通过CVSROOT/passwd,CVSROOT/readers,CVSROOT/writers文件同时还要设置CVS REPOS的物理目录权限来完成权限设置,无法完成复杂的权限控制;但是CVS通过CVS ROOT目录下的脚本,提供了相应功能扩充的接口,不但可以完成精细的权限控制,还能完成更加个性化的功能。
CVS是开发源码软件,没有生产厂家为其提供技术的支持。如发现问题,通常只能靠自己查找网上的资料进行解决。
SVN全名Subversion,即版本控制系统。
SVN与CVS一样,是一个跨平台的软件,支持大多数常见的操作系统。作为一个开源的版本控制系统,Subversion 管理着随时间改变的数据。 这些数据放置在一个中央资料档案库中。 这个档案库很像一个普通的文件服务器, 不过它会记住每一次文件的变动。 这样你就可以把档案恢复到旧的版本, 或是浏览文件的变动历史。Subversion 是一个通用的系统, 可用来管理任何类型的文件, 其中包括了程序源码。
Git是一个开源的分布式版本控制系统,用以有效、高速的处理从很小到非常大的项目版本管理。
Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。
Torvalds 开始着手开发 Git 是为了作为一种过渡方案来替代 BitKeeper,后者之前一直是 Linux 内核开发人员在全球使用的主要源代码工具。开放源码社区中的有些人觉得 BitKeeper 的许可证并不适合开放源码社区的工作,因此 Torvalds 决定着手研究许可证更为灵活的版本控制系统。尽管最初 Git 的开发是为了辅助 Linux 内核开发的过程,但是我们已经发现在很多其他自由软件项目中也使用了 Git。
Git 是分布式的,SVN 不是:
这是 Git 和其它非分布式的版本控制系统,例如 SVN,CVS 等,最核心的区别。
Git 把内容按元数据方式存储,而 SVN 是按文件:
所有的资源控制系统都是把文件的元信息隐藏在一个类似 .svn、.git 等的文件夹里。
Git 分支和 SVN 的分支不同:
分支在 SVN 中一点都不特别,其实它就是版本库中的另外一个目录。Git 分支是指针指向某次提交,而 SVN 分支是拷贝的目录。这个特性使 Git 的分支切换非常迅速,且创建成本非常低。
Git 有本地分支,SVN 无本地分支。在实际开发过程中,经常会遇到有些代码没写完,但是需紧急处理其他问题,若我们使用 Git,便可以创建本地分支存储没写完的代码,待问题处理完后,再回到本地分支继续完成代码。
Git 没有一个全局的版本号,而 SVN 有:
目前为止这是跟 SVN相比,Git 缺少的最大的一个特征。
Git 的内容完整性要优于 SVN:
Git 的内容存储使用的是 SHA-1 哈希算法。这能确保代码内容的完整性,确保在遇到磁盘故障和网
络问题时降低对版本库的破坏。
可以进入官网https://git-scm.com/,选择适合自己电脑的版本下载并安装。
安装时一路next即可。需要注意的点(仅供参考):
安装完成后在桌面或任意文件夹单击鼠标右键,出现Git Bash Here/ Git GUI Here则说明安装成功
或者在cmd终端输入:git --version
,出现版本说明安装成功
git的工作区域分为3个区域:工作区、暂存区和仓库区。3个区的功能分别为:
三个区之间的联系和文件操作如下图所示
初始化仓库的步骤如下:
git init
(会生成一个.git的隐藏文件)常用指令:
add 添加文件
格式:git add 文件名
作用:将工作区的文件提交(此时文件提交至暂存区)
注:如果文件名参数为
*
,表示提交当前目录下的所有文件。目录路径可以用/
分隔开。
rm 删除文件
格式:git rm 文件名
作用:删除文件(工作区/库一起删除)
注:如果想要删除文件夹,则添加参数
-r
:git rm -r 文件夹
当我们需要删除暂存区或分支上的文件, 但本地又需要使用,只是不希望这个文件被版本控制, 可以使用下面迷命令只删除暂存区和版本库中的文件,保留工作区文件:
git rm -r --cached 文件夹名称
status 查看当前状态
格式:git status
作用:查看暂存区状态(有多少条指令待执行)
commit 提交
格式:git commit -m "提交描述"
作用:执行暂存区的指令,提交到版本库。提交描述表示这次提交的描述信息。
git常见的远程服务器有:
其中,GitHub和GitLab都是国外服务商,在国内访问速度可能会受到限制。Gitee是国内的代码托管与开发协作平台,在国内的访问速度相比GitHub和GitLab要快很多。
GitHub
通过git管理github托管项目代码。
GitHub是一个面向开源及私有软件项目的托管平台,因为只支持git 作为唯一的版本库格式进行托管,故名GitHub。
GitHub于2008年4月10日正式上线,除了git代码仓库托管及基本的Web管理界面以外,还提供了订阅、讨论组、文本渲染、在线文件编辑器、协作图谱(报表)、代码片段分享(Gist)等功能。目前,其注册
用户已经超过350万,托管版本数量也是非常之多,其中不乏知名开源项目 Ruby,on Rails、jQuery、python等。GitLab
GitHub 和 GitLab 都是基于 web 的 Git 仓库,使用起来二者差不多,它们都提供了分享开源项目的平台,为开发团队提供了存储、分享、发布和合作开发项目的中心化云存储的场所。
GitHub 作为开源代码库,拥有超过 900万的开发者用户,目前仍然是最火的开源项目托管平台,GitHub 同时提供公共仓库和私有仓库,但如果使用私有仓库,是需要付费的。
GitLab 解决了这个问题,你可以在上面创建私人的免费仓库。 GitLab 让开发团队对他们的代码仓库拥有更多的控制,相比较GitHub , 它有不少特色:
(1) 允许免费设置仓库权限;
(2) 允许用户选择分享一个 project 的部分代码;
(3) 允许用户设置 project 的获取权限,进一步提升安全性;
(4) 可以设置获取到团队整体的改进进度;
(5) 通过innersourcing 让不在权限范围内的人访问不到该资源;
所以,从代码的私有性上来看,GitLab是一个更好的选择。但是对于开源项目而言,GitHub 依然是代码托管的首选。
Gitee(码云)
码云(Gitee)是 OSCHINA 推出的代码托管协作开发平台,支持 Git 和 SVN,提供免费的私有仓库托
管。2016 年推出企业版,提供企业级代码托管服务,成为开发领域领先的 SaaS 服务提供商。Gitee除了访问速度更快以外,Gitee 还提供了免费的私有仓库供个人开发者使用。同时,Gitee 也有着国内数一数二的开源生态,这里有非常多的优秀开源项目和开发者,你可以在这里和他们无障碍地沟通交流,不管是找开源项目还是分享自己的开源项目,Gitee 都是极佳的选择。
作为国内代码托管平台的佼佼者,目前已经有超过 500 万名开发者在 Gitee 上托管了 1000 余万个代码仓库,而其提供了研发管理、代码托管、文档管理服务的企业版的服务客户也超过了 10 万家。
下面针对Gitee说一下,Git远程服务器的使用
注册登录后,就可以创建仓库了,一个本地git库对应一个远程开源项目。
本地配置gitee的一些配置教程可以参考https://gitee.com/help/articles/4107。
设置登录的账户信息: 用户名和邮箱地址是本地git客户端的一个变量,每次commit都会用用户名和邮箱纪录。
# 设置用户名:
git config --global user.name '用户名'
#设置邮箱:
git config --global user.email '邮箱'
查看git的配置:
git config --list
- 1
git管理远程仓库的常用指令:
git clone 仓库地址
:将远程仓库的项目复制到本地git push
:将本地仓库提交到远程(注意先提交到缓存区,再提交到仓库,最后提交远程,也就是在给commit 之后再 push)git pull
:更新本地仓库至最新改动IDEA配置Git客户端:
File - Settings - Version Control - Git
配置Path to Git Executable,就是git的所在路径
下载gitee插件(GitHub等同理)
File - Settings - Plugins
搜索Gitee,然后点击Install。安装完毕后重启IDEA。
添加gitee账户
File - Setting - Version Control - Gitee
填写login和password,login填写邮箱。
上传和下载
上传:VCS - Import Into Version Control - Share Project To Gitee
下载:新建项目时:Get from Version Control
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。