文章目录
在上一篇的Git基础中,文末部分我们从大面上讲解了Git的整体架构组成。今天这一篇中就来详细说说本地仓库这一块的基础操作。
回顾 —— 本地仓库架构
我们要明确的是:Git本身是运行在本地的,以一个一个的本地仓库(repository)为工作单位,互不影响。 每个本地仓库的内部架构均如图所示:
解释一下这里边的几个重要概念:
本地仓库(repository) // 实质为一个目录文件
├── 版本库(.git目录) // 仓库初始化后添加的隐藏文件
│ └── 暂存区(stage) // Git的跟踪文件
│ └── master分支 // 最终提交的代码版本保存地
├── 工作区(workspace) // 实际开发中的项目目录
一. 新建并初始化仓库
一个本地的Git仓库(repository)实质为一个文件夹。 现在我们在桌面上手动创建一个名为Git-demo
的文件夹,作为我们的第一个仓库文件。
双击进入该文件夹,右键打开Git Bash窗口,使用如下命令初始化该文件:
$ git init
本地仓库初始化后,出现的.git
隐藏文件即为版本库。其中细分的暂存区和分支我们不需要关心,那属于Git的管理范围。
二. 添加项目文件
之后我们向Git-demo
这个仓库文件夹内添加的任何文件都属于是工作区(workspace)的项目文件。
具体添加什么文件随意,看你心情~
三. 查看仓库状态
添加完项目文件后,继续在Git Bash窗口内执行以下命令来查看一下当前仓库的状态:
$ git init
未跟踪文件的文件名是红色的,意思是我们新添加的项目文件,还没有添加(add操作)到暂存区。
四. add添加为暂存文件
通过执行add操作,可以把新增的项目文件(未跟踪文件)添加到暂存区,来让Git持续跟进这些文件的修改情况。
add操作又具体可细分为以下三种情况:
$ git add . // 一次性全部添加
$ git add -A // 只提交修改的部分文件
$ git add xxx // 添加指定文件
4.1 一次性全部添加
如果当前项目文件都是第一次创建,或者大部分的项目文件都修改过的时候,可以选择一次性把他们全部添加到暂存区。add .
就代表添加全部:
$ git add .
现在我们来执行一下,然后重新查看仓库状态:
可以看到,刚才的文件名都变成了绿色的。就是说,现在Git已经在监听它们的变化了,如果我们后来修改了文件内容,就需要重新提交暂存区。
4.2 只提交修改的部分文件
现在我们来修改一下README.md
文件。简单添加了一行内容:
继续来看状态:
Git检测到了我们修改了暂存区的README.md
文件。甚至我们还可以查看我们修改了什么:
$ git diff
现在来使用第二种add操作 —— 只添加修改的部分文件。可以看到状态都重新变绿了。
$ git add -A
拓展 —— .gitignore忽略文件
我们在添加暂存区的时候,有些文件内容是相对固定的,通常不会修改。比如这里的README.md
就是这样的一个文件。那么每次全部提交(add .
)时,都带上一个从未修改的文件就显得很没有必要了。
所以Git中支持我们创建一个.gitignore
文件,来告诉Git每次添加时你要忽略的文件列表。
在其中写上README.md
的文件名即可。
4.3 提交指定文件
这个也很简单,add后跟上文件名即可。比如新增一个文件:config.js
。再执行命令,具体看动图:
$ git add config.js
五. commit提交为版本
添加到暂存区并没有完成。还需要最后一步:从暂存区通过commit操作最终提交至分支。
5.1 简述分支
简单来说一下什么是分支:
分支其实就是一个版本的历史线,按时间顺序记录着你每次提交的代码版本。
Git仓库在初始化的时候默认会创建一个master主分支。可通过以下命令来查看分支情况:
$ git branch
Git Bash中貌似不能这样查看了,但是还是可以从图中的两处位置看出来:
5.2 初次提交
有关分支的操作后续再说。先来看更基础的conmmit提交吧。它的命令为:
$ git conmmit -m '提交的描述信息'
-m
是-message
的缩写,后面必须跟上你本次的描述信息。写什么都行,类似于代码的注释,只是为了让你好区分每次提交的版本。
5.3 查看提交记录
随着我们项目的深入,你commit的次数也会越来越多。在Git中支持查看你的提交历史(日志信息):
$ git log
目前我们只提交了一次,所以只有一条日志信息。
简单分析一下其中都记录了哪些内容:
- 本次提交的版本号;
- 分支信息;
- 作者信息(姓名 邮箱);
即我们之前配置过的全局(-- global)用户信息; - 提交日期;
- 提交的描述信息;
六. 开发流程小结
提交完一个版本,我们还会继续coding,继而提交第二个,第三个直至最终版本。小结一下开发的流程:
① 工作区编辑项目文件;
② add添加到暂存区;
$ git add .
③ commit提交到分支;
$ git conmmit -m '提交的描述信息'