Skip to content

Git 工作流程

Git 工作流程

简介

Git 是目前世界上最先进的分布式版本控制系统。它可以更方便的跟踪,管理和组织代码,也可以更好的与其他开发者进行协作开发。协作开发必须有一个规范来约束各个贡献者的行为。这个规范就是 Git 工作流程(Git Workflow)。

Git 基本概念

文件状态

git 管理的文件存在以下几种文件状态:

首先 Untracked 是还没有记录,还没有登记。这个 Untraked 就是表示这个文件还没有登记给 git 代码库,git 还不知道这个文件要不要纳入版本管理。

当执行 git add 文件名 这个命令之后,就代表要把这个文件纳入版本管理,这个时候,它的状态就变成了 Staged 暂存区,表示文件已经记录下来了,后面可以一起提交到本地仓库中。

而原来已经纳入版本管理的文件,如果一直都没有修改过内容,它的状态就是 Unmodified 未修改。如果把处于未修改状态的文件修改了内容,这个时候它的状态就会变为已修改,需要再次提交到暂存区,才能后面把这个修改提交到本地仓库。

当把这些暂存区的文件都提交到本地仓库之后,它们的状态就都会变为 Unmodified 未修改。

uml diagram

这就是 Git 中文件的基本状态和它们之间的流转过程。

三个工作区域

根据 Git 的文件状态,在 Git 分成了不同的工作区域:工作区、暂存区和仓库区。

工作区是对项目的某个版本独立提取出来的内容。这些内容是从 Git 仓库的压缩数据库中提取出来的文件,放在本地磁盘上使用或修改。

暂存区是一个文件,保存了下次将提交的文件列表信息,一般在 Git 仓库目录中。

仓库区是用来保存项目的元数据和对象数据库的地方。 这是 Git 中最重要的部分,从其它计算机克隆仓库时,拷贝的就是这里的数据。

工作树

Git 工作树 worktree 是 Git 仓库的一个链接副本,允许同时签出多个分支。工作树与主工作副本的路径是分开的,它可以处于不同的状态和不同的分支上。

在 Git 中新建工作树的好处是,可以在不干扰当前工作环境的情况下,做出与当前任务无关的修改、提交修改,然后在以后合并。

Git 工作流程

这里把 Git 的工作区域分为 4 层,分别是本地的工作区、本地的暂存区、本地的仓库区和远程的仓库区。

远程的仓库区就是托管代码的服务器,比如常见的 GitHub、GitLab、Gitee 等等

Git 的工作流程一般是这样的:

uml diagram

  1. 使用 git add 命令在工作目录中添加、修改文件。
  2. 执行完 git add命令之后,文件就会进入暂存区。
  3. 暂存区的文件可以通过 git rm 命令清除掉,让文件离开暂存区。也可以使用 git checkout 命令恢复到原来的内容。
  4. 已经在暂存区的文件,可以通过 git commit 命令提交到本地仓库区。
  5. 已经在本地仓库区的文件,可以通过 git reset 命令恢复到上一次记录的内容。
  6. 已经提交到本地仓库的文件,可以通过 git push 命令提交到远程仓库。
  7. 远程仓库的内容,也可以通过 git pull 命令拉取到本地仓库中。

总结

  • Git 相关概念
  • Git 工作流程