git


源代码管理工具-GIT

一. git 概述

1. git 简介?

  1. 什么是git?

    git是一款开源的分布式版本控制工具
    在世界上所有的分布式版本控制工具中,git是最快、最简单、最流行的

  2. git的起源?

    作者是Linux之父:Linus Benedict Torvalds
    当初开发git仅仅是为了辅助Linux内核的开发(管理源代码)

  3. git的现状?

    在国外已经非常普及,国内并未普及(在慢慢普及)
    越来越多的开源项目已经转移到git

2. 常见的源代码管理工具有哪些?

  • CVS

    • 开启版本控制之门
    • 1990年诞生,“远古时代”的主流源代码管理工具
  • SVN

    • 全称是Subversion,集中式版本控制之王者
    • 是CVS的接班人,速度比CVS快,功能比CVS多且强大
    • 在国内软件企业中使用最为普遍(70%-90%)
  • ClearCase

    • 收费的集中式版本控制工具,安装比Windows还大,运行比蜗牛还慢
    • 能用ClearCase的一般是世界500强,他们有个共同的特点是财大气粗或者人傻钱多
  • VSS

    • 微软的集中式版本控制工具,集成在Visual Studio中

3. 集中式版本控制

所有的代码都集中在一块, 统一进行管理

4. 分布式版本控制

在每个客户端都有一份完整的代码仓库, 可以在每个客户端自行管理

5. git 和 svn的简单对比

  • 速度

    在很多情况下,git的速度远远比SVN快

  • 结构

    SVN是集中式管理,git是分布式管理

  • 其他

    SVN使用分支比较笨拙,git可以轻松拥有无限个分支

    SVN必须联网才能正常工作,git支持本地版本控制工作

    旧版本的SVN会在每一个目录置放一个.svn,git只会在根目录拥有一个.git

6. SVN工作流程和GIT工作流程对比

1
2
3
4
5
6
7
8
$ svn checkout —— git clone
svn 只下载代码, git 会连同代码仓库一起下载下来

$ svn commit —— git commit
svn 是提交到服务器,git 中是提交到本地仓库,需要使用push才能提交到服务器

$ svn update —— git pull
都是从服务器下载最新被修改的代码

分布式和集中式最大的区别在于:在分布式下,本地有个代码仓库,开发者可以在本地提交; 而集中式版本控制, 只有在服务器才有一个代码仓库, 只能在服务器进行统一管理

7. git工作原理

  1. 概念理解
  • 工作区

    与.git文件夹同级的其他文件夹或者子文件夹

  • 版本控制库

    暂缓区

    分支(Git不像SVN那样有主干和分支的概念. 仅仅存在分支,其中master分支为默认被创建的分支,类似于SVN中的主干)

    切换分支:通过控制HEAD指针指向不同的分支,就可以切换

操作原则: 所有新添加/删除/修改的文件 必须先添加到暂缓区,然后才能提交到HEAD指向的当前分支中

8. git使用环境

  1. 单人开发只需要一个本地库

    原因:不需要与他人共享代码,只负责管理自己代码即可;例如提交代码,删除代码,版本控制等等

  2. 多人开发时需要一个共享版本库

    共享版本库的形式:
    本地共享库:文件夹/U盘/硬盘
    远程共享库:自己搭建git服务器/ 托管到第三方平台(例如github, oschina)

  3. 使用环境

    无论是单人开发还是多人开发,客户端都可以使用命令行或者图形界面使用git

  • Xcode

    虽然集成较好,但是只能做一些常用的简单操作,复杂操作还要使用命令行

------ 本文结束------
0%