前面我们了解了 Git 的诞生和它的相关基本概念,那么它到底是怎样去管理我们的文件版本的呢?本节内容就来讲解下 Git 的工作流程是怎样的,会从理论和实际操作两方面配合讲解。但由于大家刚入门,很多命令参数不太了解,实际的命令操作部分作为辅助理解,后面还会有很多机会带大家去接触实操,先不用怕哈。好了,开始我们今天的内容!
1. 工作流程介绍
我们先从工作流程说起,基本的 Git 工作流程如下:
a. 修改:修改工作区(Working Directory)中的文件。
b. 暂存:选择要作为下一次提交部分的那些更改,仅将这些更改添加到暂存区域(Staging Area)。
c. 提交:执行一次提交,该提交将获取本次所在版本的文件并将该快照永久存储到你的 Git 目录(.git directory)中。
将这三个流程串起来,可以通俗地理解为:先将本地文件做一修改,修改之后我们要怎么告诉 Git 呢?所以就需要通过命令将本地修改先添加到暂存区,将暂存区理解为一个临界区。但提交到暂存区之后,还未正式纳入 Git 的管理,等你确认这部分内容需要正式提交到 Git 仓库的时候,再通过提交命令执行提交操作。那么,一个最基本的工作流程就结束了。
对于一些内容大家是不是还有点懵呢?接下来我挑其中涉及到的概念详细说明下,或许对大家理解有帮助。请继续往下看。
2. 相关概念
2.1 工作区
工作区是项目一个版本的单个检出(checkout)。这些文件将从 Git 目录中的数据库中拉出(pull),并放置在磁盘上供你使用或修改。
也就是说,我们从 Git 上检出的某一个版本的文件到本地并存储在本地磁盘后,此时本地的环境就是工作区,我们做的所有操作都在此基础上进行。
2.2 暂存区
暂存区域是一个文件,通常包含在你的 Git 目录中,用于存储有关下一次提交的内容的信息,也可以叫 “索引”。
暂存区可以理解为工作区修改后的那部分即将用于正式提交的文件存储的位置,是一个本地目录和 Git 版本库正式管理的目录之间的一个临界区,这部分存放的就是本地做了修改后告诉 Git 我即将要提交但还没正式提交的那些内容。
2.3 本地仓库
本地仓库可以简单理解成一个目录,这个目录里面的所有文件都被 Git 管理,Git 记录了每个文件的修改、删除,因此我们可以对历史版本进行查看或者还原。
那么,如何创建一个版本库呢?(说明:以下内容作为 “本地仓库” 概念的辅助理解,具体命令操作后续会更多接触,先不用纠结)
a. 选择一个合适的地方,创建一个空目录。
b. 在目录下执行:git init 命令即可初始化一个本地仓库。
c. 之后当前目录会出现一个隐藏的.git
的目录,这个目录是 Git 来跟踪管理版本库的,不要手动修改这个目录里面的文件,否则会把 Git 仓库给破坏了。
d. 本地仓库初始化完成后,我们就可以在本地仓库进行文件的管理。
2.4 远程仓库
上一步已经在本地创建了一个 Git 仓库,然后可以在 GitHub 上再创建一个 Git 仓库,并且让这两个仓库进行远程同步。GitHub 上的仓库就是远程仓库,可以让其他人通过该仓库来共同操作。
那么,怎么进行创建、同步远程仓库到本地仓库呢?具体步骤如下(说明:以下内容作为 “远程仓库” 概念的辅助理解,具体命令操作后续会更多接触,先不用纠结):
- 登录 github,主页左边部分 repositories,点击 new 按钮 。
- 填写基本信息,点击 Create repository 按钮。
- 之后,我们可以根据提示,将本地已经创建好的仓库,同远程仓库进行关联。
- 先在本地仓库新建一个文本,通过 git add 命令添加到暂存区,并通过 git commit 命令将暂存区内容提交到 master 分支(关于分支的知识,后面小节会介绍)。
- 将本地仓库与远程仓库关联。
- 至此,我们已经初步地建立了一个远程仓库,并且与本地仓库进行了关联。
注意:
当直接执行:git push -u origin master 时会报错:
error: src refspec master does not match any.
error: failed to push some refs to ‘https://github.com/javaDreame/git_study.git’
原因是本地仓库是个空目录,没有文件不能关联。因此需要先创建一个文本,并使用 add/commit 命令添加并提交到本地仓库,再进行远程关联。
重要的话说三遍,先理解流程概念,先理解流程概念,先理解流程概念!
3. 总结
关于 Git 的工作流程我们先讲到这里,大家同样还是先从理论概念上有一个认识。在操作之前,我们首先要搞清理论概念,才能知其然知其所以然,不要急于动手。实际操作和命令使用后续会展开说明,练习的多了自然就熟练了。
通过本小节,我们学习了如下知识:
- Git 工作流程简介:它是由修改、暂存、提交三个步骤来完成的。
- Git 工作流程中涉及的相关概念:包括工作区、暂存区、本地仓库和远程仓库的理解。
- Git 创建本地仓库、创建远程仓库以及双方进行简单的关联操作。