zoukankan      html  css  js  c++  java
  • Git 系列教程(1)- Git 简介

    前言

    • 因为工作中目前要大量使用 Git,虽然之前已经会用了,但没有系统的总结过,现在来重新总结
    • 概念篇会直接搬网上的教程,比如:菜鸟、廖雪峰、老张、中文版Git,就不再花时间自己总结过概念了

    Git 是什么?

    • Git是目前世界上最先进的分布式版本控制系统(没有之一),用于敏捷高效地处理任何或小或大的项目
    • Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件
    • Git 与常用的版本控制工具 CVS, Subversion 等不同,它采用了分布式版本库的方式,不必服务器端软件支持

    什么是集中式版本控制系统?

    • 版本库是集中存放在中央服务器的
    • 而干活的时候,用的都是自己的电脑,所以要先从中央服务器取得最新的版本,然后开始干活
    • 干完活了,再把自己的活推送给中央服务器
    • 中央服务器就好比是一个图书馆,你要改一本书,必须先从图书馆借出来,然后回到家自己改,改完了,再放回图书馆

    缺点

    • 集中式版本控制系统最大的毛病就是必须联网才能工作
    • 如果在局域网内还好,带宽够大,速度够快
    • 可如果在互联网上,遇到网速慢的话,可能提交一个10M的文件就需要5分钟,体验极其不好

    什么是分布式版本控制系统?

    • 分布式版本控制系统根本没有“中央服务器”,每个人的电脑上都是一个完整的版本库,就不需要联网了
    • Git 这种系统,客户端并不只提取最新版本的文件快照, 而是把代码仓库完整地镜像下来,包括完整的历史记录
    • 那任何一处协同工作用的服务器发生故障,事后都可以用任何一个镜像出来的本地仓库恢复, 因为每一次的克隆操作,实际上都是一次对代码仓库的完整备份
    • 它还以指定和若干不同的远端代码仓库进行交互,因此你就可以在同一个项目中,分别和不同工作小组的人相互协作,可以根据需要设定不同的协作流程

    Git 和 SVN 的区别

    • Git 是分布式的,SVN 不是:这是 Git 和其它非分布式的版本控制系统,例如 SVN,CVS 等,最核心的区别

    • Git 把内容按元数据方式存储,而 SVN 是按文件:所有的资源控制系统都是把文件的元信息隐藏在一个类似 .svn、.cvs 等的文件夹里

    • Git 分支和 SVN 的分支不同:分支在 SVN 中一点都不特别,其实它就是版本库中的另外一个目录

    • Git 没有一个全局的版本号,而 SVN 有:目前为止这是跟 SVN 相比 Git 缺少的最大的一个特征

    • Git 的内容完整性要优于 SVN:Git 的内容存储使用的是 SHA-1 哈希算法。这能确保代码内容的完整性,确保在遇到磁盘故障和网络问题时降低对版本库的破坏

    Git 的工作流程

  • 相关阅读:
    猫眼 top_100 爬取 ___只完成了第一页
    内涵段子——脑筋急转弯——spider
    django 常用 详解
    获取定位信息
    对AFNetworking的二次封装
    对UIImageView+WebCache的封装
    CoreText 实现图文混排
    剖析RAC中的@weakify、@strongify
    实现点击按钮旋转动画
    java面向对象编程思想的理解
  • 原文地址:https://www.cnblogs.com/poloyy/p/14769697.html
Copyright © 2011-2022 走看看