习惯了SVN的Git新手,如何避免代码覆盖的事故
Git作为后起之秀,相对于CVS、SVN、CVS, Perforce这种集中式版本控制库他有一些创新性的改进,主要体现在几点:
基于社交模式的开发协作和管理能力:
用户通过WEB控制台,可以进行基本的项目管理比如团队成员管理、开发里程碑管理、简单的任务管理等;团队成员可以在WEB控制台上进行查看提交历史、查看代码变更历史、代码评审等功能;Git还提供WIKI知识共享和团队沟通的机制。Git的控制台基本可以满足协同开发的需求,所以很多协同开发平台就直接集成了它的功能,比如说coding、华为云以及各大互联网公司的DevOps平台。
分布式仓库管理能力:
Git是一种分布式版本控制系统,使用者在客户端从服务器端获取的不仅仅是文件副本,而是整个版本库的镜像。客户端不依赖服务器也能进行版本控制;从安全角度讲,若服务器端数据损坏了造成的损失也是有限的。快捷轻便的分支管理功能:
相对于其他的版本控制工具,Git的分支操作非常轻量,分支的创建和切换也很快,因此Git提倡开发者使用切换分支、合并分支等功能在研发生命周期的各个阶段(开发、测试、发布)灵活的实现代码协作和版本控制。对持续集成持续部署的支持:例如Web Hooks、Deploy Keys都是为了便于持续集成持续部署提供的功能。
基于上述特性,Git足以成为大型项目、大型团队的协作利器,因此也成为了SCM软件的新宠。很多的开源项目已经转到github上了,Github的首页上显示,GitHub上已经有百万个开源项目了。 越来越多企业开发团队也都逐渐从SVN转到了git上,我们的团队也是其中之一。铁打的营盘流水的兵,团队陆陆续续有没用过Git的新人加入,每一波新人使用Git的时候都会造成一些代码覆盖的事故。又有新人来了,针对Git小白写一份简明教程,提示注意事项、便于他们快速理解,减少误操作。
不同于SVN,Git特有的操作
Git客户端和服务端都有一个版本库,而SVN只有服务器端有版本库,因此无论是从服务器端获取代码和提交代码与SVN都有所不同:
Git本地有三个区域:
工作区 (workspace) :工作区即开发中存储并修改文件的区域;
索引区(index):工作区的文件添加到git的索引中,则git开始对文件进行跟踪监控,也叫数据暂存区域
本地仓库(Local Repository):当本地执行commit时,暂存区域的数据被记录到本地数据仓库中,可进行版本控制。