当前位置:网站首页>代码管理工具
代码管理工具
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有一个错误,这时候可以进行回退处理,比较方便。
冲突解决,在团队的多人协同开发中,冲突是经常有的事情,比如存在着相同的文件名称,同一个文件中有着相同功能的函数等等,这时候使用源代码管理工具可以比较方便的解决冲突。冲突的解决一般按照“复制-修改-合并”原则进行。
如有侵权,请联系删除!
边栏推荐
- SVN分支管理
- Zhiniu stock project -- 04
- 【系统设计】邻近服务
- Pytorch builds the simplest version of neural network
- Jackson: what if there is a lack of property- Jackson: What happens if a property is missing?
- How to create your own repository for software packages on Debian
- If function of MySQL
- 轻松上手Fluentd,结合 Rainbond 插件市场,日志收集更快捷
- Multithreading and high concurrency (7) -- from reentrantlock to AQS source code (20000 words, one understanding AQS)
- 项目总结--2(Jsoup的基本使用)
猜你喜欢
[teacher Zhao Yuqiang] kubernetes' probe
Deep learning, thinking from one dimensional input to multi-dimensional feature input
Pytorch dataloader implements minibatch (incomplete)
GPS坐标转百度地图坐标的方法
Solve the 1251 client does not support authentication protocol error of Navicat for MySQL connection MySQL 8.0.11
Convolution operation in convolution neural network CNN
Zhiniu stock project -- 05
Simple handwritten ORM framework
Click cesium to obtain three-dimensional coordinates (longitude, latitude and elevation)
Cesium Click to obtain the longitude and latitude elevation coordinates (3D coordinates) of the model surface
随机推荐
Jackson: what if there is a lack of property- Jackson: What happens if a property is missing?
PMP笔记记录
[teacher Zhao Yuqiang] calculate aggregation using MapReduce in mongodb
智牛股--03
Using the ethtool command by example
Apt update and apt upgrade commands - what is the difference?
SVN分支管理
Txt document download save as solution
[teacher Zhao Yuqiang] kubernetes' probe
项目总结--2(Jsoup的基本使用)
最大似然估计,散度,交叉熵
Leetcode solution - 02 Add Two Numbers
Code generator - single table query crud - generator
The server data is all gone! Thinking caused by a RAID5 crash
[video of Teacher Zhao Yuqiang's speech on wot] redis high performance cache and persistence
Zhiniu stock -- 03
Skywalking8.7 source code analysis (II): Custom agent, service loading, witness component version identification, transform workflow
Oauth2.0 - using JWT to replace token and JWT content enhancement
理解 YOLOV1 第一篇 预测阶段
[teacher Zhao Yuqiang] use the catalog database of Oracle