Android - 版本控制软件,集中式与分布式,SVN提交规范,Git,Git操作步骤

标签: android 版本控制 集中式和分布式 Subversion git
492人阅读 评论(0) 收藏 举报
分类:

1.版本控制软件

功能:

  • 方便程序员代码共享,协同开发

应用场景:

  • 想恢复到某个版本,ctrl+z是有最大记录数的,不能回到原来的那个版本了
  • 修改一个bug,改来改去最后改好了,但是自己也忘记了是怎么改好的,没有一个改动的记录
  • 项目中出了一个bug,大家都不承认是谁改的,没有一个修改人的记录
  • 代码的权限控制,新手菜鸟可能一不小心把代码给删除或者改错了
  • 项目管理,工作量统计—查看每个程序猿的代码提交量
  • 项目不同版本代码的保存、备份

2. 常用软件

以下是集中式版本控制:

  • CVS:
    已经基本淘汰,之前主流的版本控制软件

  • SVN:
    Subversion,为了替代CVS。目前主流软件

  • ClearCase:
    IBM开发(收费),大型团队的项目开发版本控制

  • VSS
    微软开发(用的人很少),两个字形容:糟糕

分布式版本控制:

  • GIT
    分布式版本控制软件,由github网站的影响而逐渐火起来

集中式和分布式的区别:

集中式:多个开发人员通过一个中心版本控制系统来记录文件版本,从而达到保证文件同步的目的
分布式:分布式相比于集中式的最大区别在于开发者可以提交到本地,每个开发者通过克隆(git clone),在本地机器上拷贝一个完整的Git仓库。

VisualSVN是一款图形化svn服务器。官网
http://www.visualsvn.com/server/

下载地址:
http://www.visualsvn.com/server/download/
搭建svn服务器,安装步骤见文档

3. SVN使用步骤

  • checkOut:把服务器的仓库下载到本地
  • 在仓库中编写代码
  • 对新创建的文件选择add选项
  • commit:把文件或文件夹中修改过的文件提交至服务器
  • show log:查看所有历史版本
  • update:把服务器上与本地内容不一致的文件下载下来
  • 程序员同一时间修改了同一个文件的同一个位置,就会出现代码冲突
    • edit conflicts
  • 文件锁
    • 类似java同步锁
    • 在properties中设置need-lock为true
    • svn get lock:申请文件锁
    • 一个用户拿到了文件锁,其他用户就不能再申请了
    • commit代码后,会自动释放文件锁
    • Release lock:手动释放锁
  • add to ignore list

4. SVN图标

  • 蓝色问号:创建的一个新的文件或者图片,默认左上角是一个蓝色的问号:这个文件就是版本控制软件检测到的新文件,他会问你是否要加入到版本控制里面。

  • 蓝色加号:对想要加入到版本控制的文件:右键:Add->将该文件加入到我们的版本控制里面。 添加成功之后图标就变成蓝色的加号

  • 绿色对勾:对蓝色加号的文件右键:commit操作-> 注意填写提交的注释,说明。 ok之后,我们的图标变成绿色的勾之后就代表我们的文件已经提交到服务器上了。

  • 红色叹号:表示该文件或文件夹与服务器内容不一致,也就是被修改了,但是还未上传

  • 三角黄色叹号:表示该文件中出现代码冲突

  • 灰色对勾:表示该文件被文件锁锁住了

  • 黄色的锁头:表示用户已经拿到该文件的文件锁,可以修改该文件

  • 红色叉叉:表示该文件计划从SVN管理中删除

  • 没有图标:表示SVN不处理该文件

5. svn提交规范

  1. 先更新,后提交。
  2. 多提交代码,特别是在多人同时操作的代码模块,要勤更新,勤提交。
  3. 不要提交不能编译的代码。提交代码之前,自己先编译,clean下代码看有没有报错,程序是否能运行,再去提交代码。
  4. 每次提交代码必须明确写明注释,修改了什么内容,做了什么操作!
  5. 提交代码时不要提交本地自动生成的文件,可以加入过滤列表。比如bin,gen,.classpath等
  6. 不要提交自己不明白或与项目无关的代码。
  7. 慎用锁定功能。

6. git

  • 集中式服务器:一台服务器和多台终端,所有的逻辑运算和数据保存都在服务器
  • 分布式服务器:一台服务器和多台终端,每一台终端都有服务器的完整数据拷贝,客户端即是服务器
  • Windows的git其实是Linux版git加上cygwin模拟器
    • cygwin:Windows下的Linux命令行模拟器

7. git操作步骤

  • 在一个文件夹中选择create repository here,把文件夹变成仓库
  • 在仓库中编写代码
  • 先add,再commit->master
  • push:相当于svn的commit
  • pull:相当于svn的update
  • clone:相当于svn的checkOut
  • create patch serial:生成补丁文件

详情可参考: http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000/

查看评论

Android Studio 上传SVN标准全过程

Android Studio集成了版本控制,用起来还是比较方便的。 SVN的上传有两种主流的方法。直接上传新建的项目,在VCS中选择import into Subvision 然后上传即可。 这...
  • langduhualangdu
  • langduhualangdu
  • 2016-03-04 18:18:01
  • 1584

第一节:详细透彻解读Git与SVN的区别(集中式VS分布式)

Git 是目前世界上最先进的分布式版本控制系统,Git 跟 SVN一样有自己的集中式版本库或服务器,但是Git 更倾向于被使用于分布式模式,也就是每个开发人员从中心版本库/服务器上chect out代...
  • hellow__world
  • hellow__world
  • 2017-05-19 14:44:15
  • 15925

GIT 分布式 SVN 集中式 版本控制系统

git 帮我们实现代码管理      OSCHINA  开源中国 提供代码 常用命令: 1. git  —version     查看git版本 2. git  clone + 公钥名称     克隆...
  • wangxuejuan1125
  • wangxuejuan1125
  • 2016-04-06 11:36:51
  • 1520

Git 分布式与集中式

上一篇提到了Linus比较排斥集中式的版本控制系统,从而才有了Git的出现,我们都知道Git是分布式版本控制系统,但具体有啥区别呢,今天在这里跟大家一起聊聊这些。 先说集中式版本控制系统,版本库是集中...
  • u010697394
  • u010697394
  • 2017-02-14 10:43:48
  • 458

SVN与Git比较(集中式VS分布式)

一、 集中式vs分布式 1. Subversion属于集中式的版本控制系统 集中式的版本控制系统都有一个单一的集中管理的服务器,保存所有文件的修订版本,而协同工作的人们都通过客户端连到这台服务...
  • u013332981
  • u013332981
  • 2018-02-07 18:15:04
  • 26

版本控制:集中式VS分布式

Chapter: 开始了解Git 1. 先谈谈版本控制的一些事 2. Git诞生背后的一些故事 3. 版本控制:集中式VS分布式 4. Git的思想和基本工作原理 5. Git在Wi...
  • jiary5201314
  • jiary5201314
  • 2016-05-20 20:47:01
  • 1678

基于git的代码版本管理规范及流程-简版

基于git的简单实用的版本管理规范及流程,包括:代码库的分布、人员角色的划分、代码提交合并流程、代码冲突处理、分支管理。 代码库分类根据代码库分布的位置及作用,分为以下几类: 主库:位于服务端,所有开...
  • toothlou
  • toothlou
  • 2017-12-06 22:34:51
  • 270

分布式和集中式的版本控制的区别!

Chapter: 开始了解Git 1. 先谈谈版本控制的一些事 2. Git诞生背后的一些故事 3. 版本控制:集中式VS分布式 4. Git的思想和基本工作原理 5. Git在Wi...
  • zhangqun23
  • zhangqun23
  • 2016-10-30 15:28:58
  • 1934

Git集中式工作流

本文编辑整理自:http://blog.jobbole.com/76847/ 一、前言 转到Git这种分布式版本控制系统看起来像个令人生畏的任务,但不改变已用的工作流你也可以用上Git带来的收益。...
  • hudashi
  • hudashi
  • 2015-04-16 18:17:34
  • 1993
    个人资料
    持之以恒
    等级:
    访问量: 5万+
    积分: 1529
    排名: 3万+
    文章分类
    最新评论