软件开发版本控制

来源:互联网 发布:icmp协议端口 编辑:程序博客网 时间:2024/06/10 14:10

版本控制工具

  • CVS
  • SVN
  • Git
    Git 是一款免费的、开源的、分布式的版本控制系统。旨在快速高效地处理无论规模大小的任何软件工程。
    每一个 Git克隆 都是一个完整的文件库,含有全部历史记录和修订追踪能力,不依赖于网络连接或中心服务器。其最大特色就是“分支”及“合并”操作非常快速、简便。

为什么使用版本控制管理?

1 你是否在一个团队中工作?
2 是否发生过这样的情况: 当你在修改一个文件时,其他人也在修改这个文件?而你是否因此丢失过自己所作的修改呢?
3 是否曾经保存完一个修改,然后又想把个文件恢复到修改以前的状态?是否曾经希望能够看到一个文件以前某个时间点的状态?
4 是否曾经在项目中发现了一个 BUG,然后想调查它是什么时候产生的?

如果以上问题中的任何一个回答“是”的话,那么就有必要使用版本管理软件了。当若干开发人员组成的团队联合开发一个软件工程时,互相有不同的代码片段任务;他们需要将各自的成果集中起来,并方便随时修改及更新。有时修改后又觉得之前的代码可能更好,需要返回旧版本 —— 这就产生了版本控制的需要。

git与svn比较

svn

  • 每个版本库有唯一的URL(官方地址),每个用户都从这个地址获取代码和数据;
  • 获取代码的更新,也只能连接到这个唯一的版本库,同步以取得最新数据;
  • 提交必须有网络连接(非本地版本库);
  • 提交需要授权,如果没有写权限,提交会失败;
  • 提交并非每次都能够成功。如果有其他人先于你提交,会提示“改动基于过时的版本,先更新再提交”… 诸如此类;
  • 冲突解决是一个提交速度的竞赛:手快者,先提交,平安无事;手慢者,后提交,可能遇到麻烦的冲突解决。

git

  • Git中每个克隆(clone)的版本库都是平等的。你可以从任何一个版本库的克隆来创建属于你自己的版本库,同时你的版本库也可以作为源提供给他人,只要你愿意。
  • Git的每一次提取操作,实际上都是一次对代码仓库的完整备份。
  • 提交完全在本地完成,无须别人给你授权,你的版本库你作主,并且提交总是会成功。
  • 甚至基于旧版本的改动也可以成功提交,提交会基于旧的版本创建一个新的分支。
  • Git的提交不会被打断,直到你的工作完全满意了,PUSH给他人或者他人PULL你的版本库,合并会发生在PULL和PUSH过程中,不能自动解决的冲突会提示您手工完成。
  • 冲突解决不再像是SVN一样的提交竞赛,而是在需要的时候才进行合并和冲突解决。
0 0