Skip to content

前言

Git是一个开源的分布式版本控制系统, 可以有效, 高速地处理从很小到非常大的项目版本管理.也是Linus Torvalds为了帮助管理Linux内核开发而开发的一个开放源码的版本控制软件.

使用场景

  1. 备份
    1. 小明负责的模块就要完成了, 就在即将Release之前的一瞬间, 电脑突然蓝屏, 硬盘光荣牺牲!几个月来的努力付之东流.
  2. 代码还原
    1. 这个项目中需要一个很复杂的功能, 小明摸索了一个星期终于有眉目了, 可是这被改得面目全非的代码已经回不到从前了.什么地方能买到哆啦A梦的时光机啊?
  3. 协同开发
    1. 小明和小帅先后从文件服务器上下载了同一个文件:Analysis.java.小明在Analysis.java文件中声明了一个方法, 叫count (), 先保存到了文件服务器上.小帅在Analysis.java文件中声明了一个方法, 叫sum (), 也随后保存到了文件服务器上, 于是, count ()方法就只存在于小明的记忆中了(因为小帅是在小明写新方法前下载的).
  4. 追溯问题
    1. 小美是一位项目经理, 每次因为项目进度挨骂之后, 他都不知道该扣哪个程序员的工资!就拿这次来说吧, 有个Bug调试了30多个小时才知道是因为相关属性没有在应用初始化时赋值!可是小明, 小帅都不承认是自己干的(如果有版本控制器的话, 小美就可以查看版本控制器日志, 从而知道是小明的问题).

小明:为什么受伤的总是我qwq

版本控制器的方式

本教程为分布式版本控制工具: Git

  1. 集中式版本控制工具
    1. 集中式版本控制工具, 版本库是集中存放在中央服务器的, team里每个人work时从中央服务器下载代码, 是必须联网才能工作, 局域网或互联网.个人修改后然后提交到中央版本库.
    2. 举例:SVN和CVS
  2. 分布式版本控制工具
    1. 分布式版本控制系统没有“中央服务器”, 每个人的电脑上都是一个完整的版本库, 这样工作的时候, 无需要联网了, 因为版本库就在你自己的电脑上.多人协作只需要各自的修改推送给对方, 就能互相看到对方的修改了.
      1. 举例:Git