Git 理论详解

本文导读

Git 是什么?

  • Git是目前世界上最先进的分布式版本控制系统,也是一款基于命令行的版本控制软件,但在 Windows 和 Mac 系统上也有几款可用的桌面应用
  • Git 由 Linux 之父 Linus Torvalds 开发
  • GIT不仅仅是个版本控制系统,它也是个内容管理系统(CMS)、工作管理系统
  • 版本控制软件Git 让你可以预览你写过的代码的所有版本
  • Git 跟 SVN一样有自己的集中式版本库或服务器,但是Git 更倾向于被使用于分布式模式,也就是每个开发人员从中心版本库/服务器上chect out代码后会在自己的机器上克隆一个跟中心版本库一模一样的本地版本库
  • 如果被困在一个不能连接网络的地方,Git仍然能够提交文件,查看log(历史版本记录),创建项目分支等
  • Git 是一款基于命令行的版本控制软件,在 Windows 和 Mac 系统上也有几款可用的桌面应用
  • Git官网地址:https://git-scm.com/

Git VS SVN

  • 最核心的区别是:GIT是分布式,而SVN不是
  • GIT把内容按元数据方式存储,而SVN是按文件
  • SVN 断开网络或者断开VPN就无法commit代码,但是Git 可以先commit到本地仓库
  • Git 克隆一个完整项目的速度非常快,SVN 非常慢

Git 工作流程


  • Workspace:工作区
  • Index / Stage:暂存区
  • Repository:仓库区(或本地仓库)
  • Remote:远程仓库

工作区

  • Workspace:程序员进行开发(改动)的地方,是当前看到的,也是最新的。
  • 平常项目开发就是拷贝远程仓库中的一个分支,基于该分支进行开发,在开发过程中就是对工作区的操作。

暂存区

  • Index / Stage(暂存区):.git目录下的index文件, 暂存区会记录git add添加文件的相关信息(文件名、大小、timestamp…),不保存文件实体, 通过id指向每个文件实体。
  • 可以使用git status查看暂存区的状态,暂存区标记了当前工作区中,哪些内容是被git管理的。
  • 当项目完成某个需求或功能后需要提交到远程仓库,那么第一步就是通过git add先提交到暂存区,被git管理。


本地仓库

  • Repository(仓库区或本地仓库):保存了对象被提交过的各个版本,比起工作区和暂存区的内容,它要更旧一些。
  • git commit 后同步index的目录树到本地仓库,方便从下一步通过git push 同步本地仓库与远程仓库。



  • 可以在任何地方新建本地仓库,只需要在目标目录下执行"git init"指令,就会将此目录自动初始化为本地仓库,同时它会新建".git"目录


远程仓库

  • Remote(远程仓库)的内容可能被分布在多个地点的处于协作关系的本地仓库修改,因此它可能与本地仓库同步,也可能不同步,但是它的内容是最旧的。

小 结

  1. 任何对象都是在工作区中诞生和被修改;
  2. 任何修改都是从进入index区才开始被版本控制;
  3. 只有把修改提交到本地仓库,该修改才能在仓库中留下痕迹;
  4. 与协作者分享本地的修改,可以把它们push到远程仓库来共享。

Git 常用命令速查表



猜你喜欢

转载自blog.csdn.net/wangmx1993328/article/details/80566486
今日推荐