源代码管理工具SVN和Git小结
来源:互联网 发布:淘宝详情关联怎么做 编辑:程序博客网 时间:2024/06/17 12:26
这篇文章主要是对源代码管理工具进行了一些总结,也算是自己对相关知识的一个梳理。文章主要从为什么使用,基本知识,二者之间的一些常用指令的对比以及冲突的解决进行梳理。文章只是自己的一些理解,可能会有一些偏差,有问题的可以随时提出!
一、为什么要使用源代码管理工具
1、能记录一个项目从开始到结束的整个过程。
2、追踪项目中所有内容的变化情况,如增加了什么内容,删除了什么内容,修改了什么内容等等。
3、版本控制,可以清楚的知道每个版本之间的异同点,如版本2.0相比较版本1.0多了什么内容,功能等。
4、 权限控制,防止代码混乱,提高安全性,防止一些不必要的损失和麻烦,简单的理解就是为什么职位做什么事情,不能越界。如控制程序员A对正在开发的项目具有开发的权限,其他项目不具有开发的权限,如果不进行控制的话,那么对其他项目的开发权限也对程序员A开放,如果程序员A对其他项目不小心进行了错误的操作 如删除,就会造成一些损失。
5、责任追究,防止互相推卸责任,可以清楚的知道谁对哪个文件进行了什么修改,导致了项目无法正常运行。
6、回退处理,执行了错误的操作之后还可以有补救的机会,如从版本1.0升级到版本2.0,后来发现版本2.0有一个错误,这时候可以进行回退处理,比较方便。
7、冲突解决,在团队的多人协同开发中,冲突是经常有的事情,比如存在着相同的文件名称,同一个文件中有着相同功能的函数等等,这时候使用源代码管理工具可以比较方便的解决冲突。冲突的解决一般按照“复制-修改-合并”原则进行。
8、。。。。。。。
二、基本知识
1、一般使用SVN或者Git进行源代码的管理。
2、SVN是集中式的、Git是分布式的。
2.1集中式:一台服务器控制着所有的代码,这台服务器的代码是最新的,其他电脑的代码操作(如下载、提交)都需要通过这台服务器才可以执行。
2.2分布式:每台电脑都相当于一个服务器,代码是最新的,比较灵活。
对比:Git的速度比SVN快;Git比SVN灵活;SVN一旦没有网络或者服务器挂了的话,其他电脑都无法执行操作,但是Git可以先提交到本地版本库,等待联网的时候再提交到远程代码仓库。
3、明白一些基本概念:工作区、本地版本库、服务器(远程代码仓库)。
3.1 本地版本库可以简单的理解为为.svn(对SVN来讲)或者.git(对Git来讲)文件下的内容,里面记录有关版本的一些信息。
3.2 工作区就是除了.svn(对SVN来讲)或者.git(对Git来讲)文件下之外的内容,也就是我们平时书写代码的地方。
3.3 服务器是一个远程代码仓库,用于容易存储代码的地方,一般代码的上传、下载都是通过服务器来操作的。
4、本地版本库和远程代码仓库的交互过程大致为:在本地电脑的工作区写代码,完成之后提交到本地的版本控制库,然后再提交到远程的代码仓库。指令对比如下:
SVN:add----commit
Git:add----commit----push
三、对比:
git reset --hard HEAD~n --- 回退n个版本
git reset --hard 版本号 --- 回退或者前进到某个版本 (可以取消一些还没有提交到仓库的操作)。二、文件已经提交到服务器,可以先在本地回退到相应版本,然后在push到远程代码仓库
四、冲突
1、产生:
1.1 大多数冲突的产生一般是本地仓库的版本低于服务器或者远程仓库版本导致的。
1.2 多人开发中一个项目中存在同名的文件。
1.3 多人同时修改同一个文件,导致这个文件中存在两个同名的方法。
2、解决:冲突的解决一般需要手动解决,遵循着“复制--修改--合并”的原则。
把自己的和服务器的文件同时保留下来,然后根据需要进行修改,修改后进行合并并且再次提交到服务器。
以上就是一些内容的梳理,有些疏漏在所难免,欢迎指正!
- 源代码管理工具SVN和Git小结
- 源代码管理工具SVN和Git小结
- 源代码管理工具Git和SVN
- 源代码管理工具 SVN
- 源代码管理工具 -SVN
- 源代码管理工具之 SVN
- 源代码管理工具-SVN
- 源代码管理工具-SVN
- 源代码管理工具之SVN
- 源代码管理工具-GIT
- 源代码管理工具-GIT
- 源代码管理工具-GIT
- 源代码管理工具GIT
- 源代码控制管理工具_git&svn
- 源代码管理工具GIT之使用
- 源代码管理工具GIT之使用
- Eclipse中使用SVN和Git版本管理工具
- SVN和Git代码管理小结
- Spring中常用的hql查询方法 (getHibernateTemplate())
- MINA框架源码分析(二)
- 使用ANT实现自动化测试
- 8.9指针重点
- HDU 4609——3-idiots
- 源代码管理工具SVN和Git小结
- Android Studio使用笔记——删除项目
- Launcher拖拽原理分析
- 【实习面试】阿里&腾讯offer的点点滴滴(内附干货)2016
- FFMPEG结构体分析:AVIOContext
- web前端开发学习路线
- ELK日志系统:Filebeat使用及Kibana如何设置登录认证
- caffe源码阅读9-loss_layer.hpp+各cpp
- 网心科技李浩:通过技术创新提高直播体验