当前位置:网站首页>代码管理工具
代码管理工具
2022-07-03 06:05:00 【开心的饲养员】
目录
几种常用的代码管理工具:
(1)CVS
- 开启版本控制之门
- 1990年诞生,“远古时代”的主流源代码管理工具
(2)SVN
- 全称是Subversion,集中式版本控制之王者
- 是CVS的接班人,速度比CVS快,功能比CVS多且强大
- 在国内软件企业中使用最为普遍(70%-90%)
(3)Git
-是目前世界上最先进的分布式版本控制系统(没有之一)
(4)ClearCase
- 收费的集中式版本控制工具,安装比Windows还大,运行比蜗牛还慢
- 能用ClearCase的一般是世界500强,他们有个共同的特点是财大气粗
(5)VSS
- 微软的集中式版本控制工具,集成在Visual Studio中
1. svn与git的区别
1.1 GIT是分布式的而SVN是集中式
集中式:一台服务器控制着所有的代码,这台服务器的代码是最新的,其他电脑的代码操作(如下载、提交)都需要通过这台服务器才可以执行。
分布式:每台电脑都相当于一个服务器,代码是最新的,比较灵活。
对比:Git的速度比SVN快;Git比SVN灵活;SVN一旦没有网络或者服务器挂了的话,其他电脑都无法执行操作,但是Git可以先提交到本地版本库,等待联网的时候再提交到远程代码仓库。
1.2 GIT把内容按元数据方式存储,而SVN是按文件
所有的资源控制系统都是把文件的元信息隐藏在一个类似.svn,.cvs等的文件夹里。如果你把.git目录的体积大小跟.svn比较,你会发现它们差距很大。因为.git目录是处于你的机器上的一个克隆版的版本库, 它拥有中心版本库上所有的东西,例如标签,分支,版本记录等。
1.3 GIT分支和SVN的分支不同
分支在SVN中一点不特别,就是版本库中的另外的一个目录。如果你想知道是否合并了一个分支,你需要手工运行像这样的命令svn propget svn:mergeinfo,来确认代码是否被合并。<br> 然而,处理GIT的分支却是相当的简单和有趣。你可以从同一个工作目录下快速的在几个分支间切换。你很容易发现未被合并的分支,你能简单而快捷的合并这些文件。
2. 常用的git管理工具
(1)Git Base
Git Base采用命令行的方式进行版本管理,功能操作最为灵活强大,下载地址:http://git-scm.com/download/win
(2)EGit
EGit是Eclipse的Git插件,在Eclipse中开发时直接操作EGit很方便,尤其对于有SVN开发情节的开发人员来说更加热衷于使用,但是EGit存在很多bug和不人性化的东西,需谨慎使用!
(3) TortoiseGit
在Windows上面,图像化软件TortoiseGit相比GitHub客户端使用较为方便,下载地址:http://git-scm.com/download/win
3. git代码管理的优势
能记录一个项目从开始到结束的整个过程。
追踪项目中所有内容的变化情况,如增加了什么内容,删除了什么内容,修改了什么内容等等。
版本控制,可以清楚的知道每个版本之间的异同点,如版本2.0相比较版本1.0多了什么内容,功能等。
权限控制,防止代码混乱,提高安全性,防止一些不必要的损失和麻烦,简单的理解就是为什么职位做什么事情,不能越界。如控制程序员A对正在开发的项目具有开发的权限,其他项目不具有开发的权限,如果不进行控制的话,那么对其他项目的开发权限也对程序员A开放,如果程序员A对其他项目不小心进行了错误的操作 如删除,就会造成一些损失。
责任追究,防止互相推卸责任,可以清楚的知道谁对哪个文件进行了什么修改,导致了项目无法正常运行。
回退处理,执行了错误的操作之后还可以有补救的机会,如从版本1.0升级到版本2.0,后来发现版本2.0有一个错误,这时候可以进行回退处理,比较方便。
冲突解决,在团队的多人协同开发中,冲突是经常有的事情,比如存在着相同的文件名称,同一个文件中有着相同功能的函数等等,这时候使用源代码管理工具可以比较方便的解决冲突。冲突的解决一般按照“复制-修改-合并”原则进行。
如有侵权,请联系删除!
边栏推荐
- 1. 两数之和
- [teacher Zhao Yuqiang] the most detailed introduction to PostgreSQL architecture in history
- 技术管理进阶——你了解成长的全貌吗?
- Intel's new GPU patent shows that its graphics card products will use MCM Packaging Technology
- Detailed explanation of findloadedclass
- 有意思的鼠标指针交互探究
- Kubernetes notes (V) configuration management
- Kubernetes cluster environment construction & Deployment dashboard
- 智牛股--03
- [teacher Zhao Yuqiang] MySQL high availability architecture: MHA
猜你喜欢
Kubernetes notes (VI) kubernetes storage
Kubernetes notes (VIII) kubernetes security
最大似然估计,散度,交叉熵
Kubernetes notes (IX) kubernetes application encapsulation and expansion
ThreadLocal的简单理解
In depth analysis of kubernetes controller runtime
Apt update and apt upgrade commands - what is the difference?
为什么网站打开速度慢?
Solve the problem of automatic disconnection of SecureCRT timeout connection
理解 期望(均值/估计值)和方差
随机推荐
ThreadLocal的简单理解
Why should there be a firewall? This time xiaowai has something to say!!!
Cesium 点击获取模型表面经纬度高程坐标(三维坐标)
Project summary --2 (basic use of jsup)
Cesium entity (entities) entity deletion method
[teacher Zhao Yuqiang] use Oracle's tracking file
Detailed explanation of contextclassloader
1. 两数之和
arcgis创建postgre企业级数据库
Simple solution of small up main lottery in station B
Btrfs and ext4 - features, strengths and weaknesses
pytorch 搭建神经网络最简版
Kubernetes cluster environment construction & Deployment dashboard
Apple submitted the new MAC model to the regulatory database before the spring conference
Multithreading and high concurrency (7) -- from reentrantlock to AQS source code (20000 words, one understanding AQS)
Svn branch management
Using the ethtool command by example
Advanced technology management - do you know the whole picture of growth?
[teacher Zhao Yuqiang] MySQL flashback
The programmer shell with a monthly salary of more than 10000 becomes a grammar skill for secondary school. Do you often use it!!!