• 『现学现忘』Git基础 — 6、Git的操作流程


    1、Git的基本操作流程

    1. 初始化一个本地版本库,每个版本库仅需要执行一次。
    2. 将中央版本库内容克隆到本地版本库,每个客户机仅需要执行一次。
    3. 添加指定文件到版本控制管理(这一步只是添加到Git暂存区)。
    4. 将添加、修改等操作,提交到本地版本库(将暂存区的内容提交到本地版本库)。
      如果远程仓库的内容被别人修改了,需要先同步远程的内容,直接git pull就可以更新本地的文件,然后再提交。再这过程中可能需要解决冲突。
      在修改完成后,如果发现错误,可以撤回提交并再次修改并提交。
    5. 将本地版本库中的修改内容“推送”到中央版本库,客户机需要在一阶段性工作完成之后,或在某些时间点(下班,周五),将修改过的内容备份到中央版本库,方便他人更新到最新的代码。
    6. 将中央版本库中的变化内容“拉取”本地版本库,客户机需要不定时的更新才可以获取最新的内容。

    提示:实际工作中的很多功能和操作都在第3、4步中。

    如下图:

    image

    说明:

    上面内容涉及到Git中的几个区域:

    • workspace:工作区。
    • staging area:暂存区/缓存区。
    • local repository:版本库或本地仓库。
    • remote repository:远程仓库。

    2、工作区、暂存区、版本库的区别

    我们先来理解下Git 工作区、暂存区和版本库概念,这对以后我们学习Git命令会有非常大的帮助。

    (1)工作区

    就是你在电脑里能看到的目录。

    一般我们执行git init命令,就能把一个目录初始化成Git本地版本库。

    而这个目录就是该Git本地版本库的工作区。

    如下图:git-demo1目录就是一个本地仓库。

    image

    具体结构如下图:

    image

    (2)版本库

    版本库:工作区(项目根目录)有一个隐藏目录.git,这个目录就是版本库,而该目录不算工作区。

    image

    具体结构如下图:

    image

    (3)暂存区

    暂存区

    • 暂存区从字面上去理解就是用来暂时保存文件的地方,实际上它的作用和它的名字是一致的,暂存区可以起到过渡的作用,当我们写代码修改了一些文件的时候,可以把修改的代码提交到暂存区保存,然后接着写代码,接着再提交到暂存区保存,写完某些代码觉得没什么可以修改的时候,可以将暂存区里面的文件一次性提交到版本库。
    • 暂存区英文叫stage,或index
    • 暂存区是包含在版本库中的,一般存放在.git目录下的index文件.git/index)中,所以我们把暂存区有时也叫作索引(index)。

    暂存区位置如下图:

    image

    具体结构如下图:

    image

    说明:

    版本库又存在两个很重要的区域:暂存区与分支区。

    分支区:该区域中可以包含很多分支,而每个分支都可以记录当前工作区中文件状态的快照。

    如下图:

    image

    即:分支区就相当于本地版本库。

    (4)通过新增文件理解三个区的关系

    1)工作区新加文件 index.html

    image

    2)将index.html提交到暂存区。

    image

    3)将暂存区内的内容提交到版本库。

    image

    4)将本地版本推送到Github上。

    image

    (5)说明

    我们只要知道Git的整体操作流程即可,脑子中有一个宏观的概括就可以。关于每一步是如何操作的,和具体使用的命令,我们以后会一步一步的进行详解。

    参考:http://www.yanhongzhi.com/post/git-2.html


    __EOF__

  • 本文作者: 繁华似锦的博客
  • 本文链接: https://www.cnblogs.com/liuyuelinfighting/p/16143690.html
  • 关于博主: 评论和私信会在第一时间回复。或者直接私信我。
  • 版权声明: 本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
  • 声援博主: 如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。
  • 相关阅读:
    python requests 配置重试次数
    公网Windows,MAC,LINUX远程操控
    分布式事务(三)———TCC 解决方案
    有哪些去水印工具?给大家推荐几个
    转发与重定向的使用
    双重按位非运算符 ~~ 对数字取整
    Linux——生产者消费者模型
    SpringBoot接收参数的几种常用方式
    [Python] pop()函数
    104. 简易聊天室7:使用 Socket 传递对象
  • 原文地址:https://www.cnblogs.com/liuyuelinfighting/p/16143690.html