• github学习之旅(四)—— 工作区、暂存区、仓库区


    一、Git 工作流程

    Git 是一个开源的分布式版本控制系统,自然就是为了记录我们的文件变更,它的工作流程如下,我们在本地(workspace)的更改,可以提交到暂存区(Index),提交到暂存区之后,我们可以继续在本地做变更,再提交到暂存区,最后等我们觉得合适了,再一次性提交到版本库(Repository),这时也就被Git跟踪起来了,也就是一个个的历史档案,每一个历史档案都会有一个独一无二的编码,将来我们可以查看每次历史档案的变更的详细内容。

    接下来,说明一些关于这3个状态的一些详细命令。

    二、新建代码仓库

    代码仓库,也就是文件夹,但它区别于普通的文件夹,也就是会被Git跟踪,我们有如下俩种方式新建代码仓库。

    1、本地新建

    // 在当前目录新建一个Git代码库
    git init

    在我的桌面有个git-learning文件夹,该文件夹下面有一个子文件夹demo。如下。

     执行以下命令,并且出现如下信息,即可完成一次本地代码库的创建。

     2、远程克隆

    第二种方式,就是克隆啦,也就是把远程仓库(github)给拉取到本地。比如我想把阮一峰老师的es6tutorial仓库给克隆下来。

    首先进入阮一峰老师的github个人主页,找到该仓库并进入该仓库,并点击箭头所指区域,即可复制该仓库的url,如下

    再在我们的本地执行git clone命令,即可。

    三、把修改的文件提交到暂存区

    如下图所示,我们进入demo文件夹,然后新建了abc.txt文本文件,并写入内容hello。然后执行了一次 git status 命令,这个命令是检查当前文件夹下的文件状态的,可以看到,abc.txt颜色为红色,并且出现untracked files 字眼,也就是说,abc.txt文件暂时没有被跟踪。

     这时我们可以通过git add 命令把文件放进暂存区,这个命令有俩种用法,如下:

    // 把所有未跟踪的文件放进暂存区
    git add .
    
    // 把指定的文件放进暂存区
    git add abc.txt

     

     可以看到,我们执行了 add 命令之后,再次 git status,abc.txt文件名变成了绿色,说明,已被暂存。

     我们,可以再次对工作区修改,然后再次丢进暂存区。如下。

    至此,我们在demo工作区,新建了一个abc.txt文件,丢进暂存区,然后再次新建一个def.txt文件,再次丢进暂存区,所以,我们的暂存区,有俩个已被跟踪的文件了。

    四、把暂存区的文件放进本地版本库

     要想真正的被版本库所记录,并最终形成一个一个带有编号的版本,是需要放进本地版本库的,暂存区,我觉得只是一个用来控制提交颗粒度的区域,就是可以分批次的放进暂存区,然后一次性放进版本库。此时用到的命令是commit。语法如下:

    git commit -m 此次提交的说明

     上面图片所示,已经通过commit命令提交到本地版本库了,再次执行git status命令,可以看到提示信息:没有文件可以提交,工作区域是干净的。

    说明:这里有一个小技巧,就是直接将文件从工作区提交到仓库,前提是该文件已经有仓库中的历史版本,语法如下:

    git commit -a -m [message]

    试验一下,

    继续在abc.txt文本文件中写入内容haha,通过以上命令直接添加进本地版本库,没问题。

    五、查看仓库中的所有版本记录

    刚刚我们已经提交了2次了,应该有2个版本了,可以通过git log命令,查看,

    git log

     可以看到,通过这个命令,可以查看每个版本的编码、作者、版本生成的时间、版本生成时的备注说明。

    但是,我们通过log命令,只是看到了一个列表,并没有详细的看到版本中的变更,如果需要查看某一个版本的详细变更,可以通过 git show 命令,语法及示例如下:

    git show 版本的编号

    可以看到,+ haha字是绿色的,说明haha这些文字是新增加的,如果是红色,就是删除的。

    至此,如何初始化一个本地仓库,再对这个仓库进行一些修改(包括增、删、改),接着把修改的文件放进暂存区,最后把暂存区的文件放进版本库进行记录,整个流程已经跑通,在这个过程中,可以随时通过 git status查看这个仓库中的文件状态,也可以通过git log查看版本库中的所有变更,还可以通过git show命令查看每一次版本的详细变更内容,其实,每一个命令都有复杂的参数可以配置,后续接着介绍。我们此时也没有把本地仓库与远端github仓库进行关联起来,一篇文章太长,我自己都懒得看了,分开讲。

  • 相关阅读:
    汇编 | 寄存器内存访问内存中字的存储
    机器学习 | 鸢尾花分类项目实战
    机器学习 | 剖析感知器算法 & Python实现
    机器学习 | 机器学习简介
    用 shell 脚本做命令行工具扩展
    基于预计算的实时环境光照(Real-time Environment Lighting Based On Precomputation)
    Java-jvm调优文档摘要
    Probius+Kubernetes任务系统如虎添翼
    Django+Ansible构建任务中心思路
    【多线程】Android多线程学习笔记——线程池
  • 原文地址:https://www.cnblogs.com/xulinjun/p/12433821.html
Copyright © 2020-2023  润新知