• 关于版本控制

    • 什么是版本控制:记录文件内容变化,将来可查阅特定版本修订情况的系统。
    • 版本控制演进
      • 1)本地版本控制系统
      • 2)集中化的版本控制系统(Centralized Version Control System)CVCS
        • 示例:CVS、Subversion、Perforce
        • 原理:有一个集中管理的服务器,保存所有文件的修订版本,通过客户端连到服务器,取出更新的文件或提交更新。
        • 缺点:中央服务器单点故障
          • 1)宕机1小时,1小时内无法提交更新
          • 2)中心数据库磁盘损坏,整个项目变更历史丢失
      • 3)分布式版本控制系统(Distributed Version Control System)DVCS
        • 示例:Git
        • 原理:与CVCS相比,客户端不仅仅提取最新文件,而是代码仓库完整镜像下来
        • 优点:服务器发生故障,可用任何一个镜像恢复
  • Git基础
    • 1)对待数据的方法:直接记录快照,而不是差异比较

      • 差异流

        • CVS、Subversion等保存项目状态时,是保存每个文件与初始版本的差异
      • 快照流
        • Git保存项目状态时,是对当时所有文件制作一个快照并保存快照的索引
    • 2)几乎所有操作都是本地执行
      • Git:绝大多数操作仅需访问本地文件和资源

        • 示例1)查看log:无需连服务器,直接本地读取
        • 示例2)版本差异:直接本地做差异比较
    • 3)Git保证完整性
      • Git中所有存储前计算校验和,然后以校验和来引用。SHA-A哈希。
    • 4)Git一般只添加数据
      • 快照提交到Git中,数据难以丢失
    • 5)3个区域和文件的3种状态
      • 3个区域
        • 工作区:
        • 暂存区:git add后文件保存到此区域,保存下一commit的文件列表信息
        • 本地仓库:git commit后文件保存到此区域
      • 文件的3中状态:
        • 已修改:工作区中文件做了修改,未git add到暂存区
        • 已暂存:已git add到暂存区,但未git commit到本地仓库
        • 已提交:已git commit到本地仓库
      • 基本git工作流程
        • 1)工作区中修改文件
        • 2)git add到暂存区
        • 3)git commit到本地仓库
  • 初次运行Git前的配置
    • Git配置

      • 每一级别覆盖上一级别的配置。
      • 系统级配置:
        • 1)/ect/gitconfig文件,含每一个用户及他们仓库的通用配置。
        • 2)命令使用前缀:git config --system
      • 用户级配置:
        • 1)~/.gitconfig或~/.config/git/config,只针对当前用户。
        • 2)命令使用前缀:git config --global
      • 仓库级配置:
        • 1)仓库目录中的.git/config,只针对该仓库
        • 2)命令使用前缀:git config
    • 配置用户信息
      • git config --global user.name "aa"
      • git config --global user.email "123@abc.com"
    • 检查配置信息
      • 1)检查所有配置:git config --list
      • 2)检查某一项配置:git config <key>,如git config user.name
    • 获取帮助
      • git help <verb>,如git help config

《Pro Git》第1章 起步的更多相关文章

  1. [Git01]Pro Git 第三章 分支 读书笔记

    [git]分支   Git 的分支模型称为“必杀技特性”,而正是因为它,将 Git 从版本控制系统家族里区分出来. Git 有何特别之处呢?Git 的分支可谓是难以置信的轻量级,它的新建操作几乎可以在 ...

  2. Pro Git 第一章 起步 读书笔记

    Pro Git 笔记 第1章 起步 1.文件的三种状态. 已提交:文件已经保存在本地数据库中了.(commit) 已修改:修改了某个文件,但还没有提交保存.(vim) 已暂存:已经把已修改的文件放在下 ...

  3. 【Tools】Pro Git 一二章读书笔记

    记得知乎以前有个问题说:如果用一天的时间学习一门技能,选什么好?里面有个说学会Git是个很不错选择,今天就抽时间感受下Git的魅力吧.   Pro Git (Scott Chacon) 读书笔记:   ...

  4. [Git00] Pro Git 一二章读书笔记

    记得知乎以前有个问题说:如果用一天的时间学习一门技能,选什么好?里面有个说学会Git是个很不错选择,今天就抽时间感受下Git的魅力吧.   Pro Git (Scott Chacon) 读书笔记:   ...

  5. 《Pro Git》笔记1:起步

    第一章 起步 1.关于版本控制 版本控制用于记录和追踪目录结构和文件内容变化,能够追溯过去的任何修改和变化,并恢复到任何历史状态. 版本控制系统可以按照发展过程分成以下几类: 目录备份.记录版本变化最 ...

  6. 《Pro Git》阅读随想

    之前做版本管理,我使用最多的是SVN,而且也只是在用一些最常用的操作.最近公司里很多项目都开始上Git,借这个机会,我计划好好学习一下Git的操作和原理,以及蕴含在其中的设计思想.同事推荐了一本< ...

  7. 《Pro Git》轻松学习版本控制

    转自 https://kindlefere.com/post/333.html 什么是“版本控制”?我为什么要关心它呢?版本控制是一种记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的系统.在 ...

  8. Pro Git(中文版)

    Pro Git(中文版) 返回 Git @ OSC 目录 1.起步 1.1 关于版本控制 1.2 Git 简史 1.3 Git 基础 1.4 安装 Git 1.5 初次运行 Git 前的配置 1.6 ...

  9. Pro Git CN Plus

    Git — The stupid content tracker, 傻瓜内容跟踪器.Linus 是这样给我们介绍 Git 的. Git 是用于 Linux 内核开发的版本控制工具.与常用的版本控制工具 ...

  10. Pro Git 学习笔记

    Pro Git 学习笔记 文档地址:Pro Git原文地址:PRO GIT 学习笔记 git常见命令 1.Git起步 初次运行Git前的配置 用户信息 git config --global user ...

随机推荐

  1. pycharm 授权/激活

    License server: http://elporfirio.com:1017/ http://idea.imsxm.com/

  2. 移动端web页面上滑加载更多功能

    背景介绍: 开发企业微信的一个应用,实现在企业微信中调用自己程序页面,页面加载多模块数据,向下滑加载更多,等等等等,一波三折 然后很早就成功了是这样实现的: html: <div id=&quo ...

  3. 【BZOJ4665】小w的喜糖 容斥+组合数

    [BZOJ4665]小w的喜糖 Description 废话不多说,反正小w要发喜糖啦!! 小w一共买了n块喜糖,发给了n个人,每个喜糖有一个种类.这时,小w突发奇想,如果这n个人相互交换手中的糖,那 ...

  4. 【BZOJ4896】[Thu Summer Camp2016]补退选 Trie树

    [BZOJ4896][Thu Summer Camp2016]补退选 Description X是T大的一名老师,每年他都要教授许多学生基础的C++知识.在T大,每个学生在每学期的开学前都需要选课,每 ...

  5. Vue.js_判断与循环

    一.判断,条件语句 1.一元表达式判断 {{ ok ? 'show' : 'hide' }} 2.if判断 v-if='ok' <ol id="ifGrammar"> ...

  6. 【微信】QQ邮箱助手不提醒解决

    1.问题及原因: 微信上的QQ邮箱提醒功能失效了,收到信后不提醒.忘了是使用了TIM,还是使用了QQ邮箱之后才出现的. 不过原因是:QQ邮箱提醒被设置为仅在QQ邮箱客户端提醒 2.解决: 重新安装QQ ...

  7. Vsftpd匿名登录设置

    修改配置文件 # vi /etc/vsftpd/vsftpd.conf local_enable=NO connect_from_port_20=YES listen=YES listen_port= ...

  8. join-case

    SELECT trd.* ,(CASE WHEN ta.AccountID IS null THEN '' ELSE ta.AccountID END ) FROM traceroleid trd L ...

  9. git --fast-version-control

    --distributed-is-the-new-centralized 读二进制文件 python  读doc  xls 几乎所有的版本控制系统都以某种形式支持分支.使用分支意味着你可以把你的工作从 ...

  10. JavaScript 入门之常见对象

    常见对象 1. Object 对象 2. String 对象 3. Array 对象 4. Date 对象 5. Number 对象 6. 自定义对象 with 语句 为了简化对象调用内容的书写 格式 ...