简介

  • Git的理论基础知识

Git工作流程

  1. 克隆Git资源作为工作目录
  2. 在克隆的资源上添加或者修改文件
  3. 如果其他人修改了,你可以更新资源
  4. 在提交前查看修改
  5. 提交修改
  6. 在修改完成后,如果发现错误,可以撤回提交并再次修改并提交

基本概念:工作区,暂存区和版本库

  • 工作区:就是在电脑里能够看到的目录
  • 暂存区:英文叫stage或index,一般放在.git目录下的index文件中,所以把暂存区有时也叫做索引(index)
  • 版本库:工作区有一个隐藏目录.git,这个不算工作区,而是git的版本库
  1. 当对工作区修改(或新增)的文件执行 git add 命令时,暂存区的目录树被更新,同时工作区修改(或新增)的文件内容被写入到对象库中的一个新的对象中,而该对象的ID被记录在暂存区的文件索引中
  2. 当执行提交操作时 git commit 时,暂存区的目录树写到版本库(对象库)中,master分支会做相应的更新,即master只想的目录树就是提交时暂存区的目录树.

Git官方手册

Git的三种状态:已提交(committed), 已修改(modified)和已暂存(staged)

  • 已修改:表示修改了文件,但还没有保存到数据库中
  • 已暂存:表示对一个已修改文件的当前版本做了标记,使之包含在下次提交的快照中
  • 已提交:表示数据已经安全地保存在本地数据库中

这会让Git项目拥有三个三阶段:工作区, 暂存区和Git目录

  • 工作区:是对项目的某个版本独立提取出来的内容,这些从Git仓库的压缩数据中提取出来的文件,放在磁盘上进行使用或修改
  • 暂存区:是一个文件,保存了下次将要提交的文件列表信息,一般在Git仓库目录中.按照Git的术语叫做”索引”,不过一般说法还是叫”暂存区”
  • Git仓库目录:是Git用来保存项目的元数据和对象数据库的地方.这是Git中最重要的部分,从其他计算机克隆仓库时,复制的就是这里的数据.

基本的Git工作流程

  1. 在工作区中修改文件
  2. 将想要下次提交的更改 选择性地暂存,这样只会将更改的部分添加到暂存区
  3. 提交更新,找到暂存区的文件,将快照永久性存储到Git目录

.gitignore 文件

  • In the project, it does not need to save all of the files. And the .gitignore file is used to save the folders which do not need to save.
  • 在工程中,并不是所有文件都需要保存到版本库中。在Git工作区的根目录下创建一个特殊的.gitignore文件,把要忽略的文件名填进去,Git就会自动忽略这些文件或目录
  • 匹配规则
    • 空格不匹配任意文件,可作为分隔符,可用反斜杠转义
    • 开头的文件标识注释,可以使用反斜杠进行转义
    • / 结束的模式只匹配文件夹以及在该文件夹路径下的内容,但是不匹配该文件
    • / 开始的模式匹配项目和目录
    • ? 通用匹配单个字符
    • * 通用匹配零个或多个字符
    • [] 通用匹配单个字符列表

工作流

  1. working directory:持有实际文件
  2. Index:类似于一个缓冲区与,临时保存文件的改动
  3. HEAD:指向最后一次提交的结果

添加与提交

  1. 把文件添加到暂存区: git add <filename>
  2. 提交改动信息: git commit -m "代码提交信息". (至此,改动已经提交到了HEAD,但是还没有到远端仓库)
  3. 推送改动: git push origin master(master 换成想要推送的分支)