joeの小窝

Loading...

git简介

git简介

  • 主要介绍git的起源,解决了什么,实现了什么

1、什么是版本控制系统

  • 版本控制系统是一种记录一个或者若干个文件内容变化,以便将来查阅特定的版本修订情况的系统

  • 用来管理文件,修改历史的工具,可以记录谁,在什么时候,改了什么内容,还能随时回退,对比,合并

  • 核心作用

    • 记录文件的每一次改动,形成版本历史

    • 不小心改错了,可以回滚到之前的版本

    • 多人同时写代码/文档,不会互相覆盖

    • 能看到谁改了哪一行,方便协作和排查问题

版本控制系统主要有2类

  • 集中式版本控制系统 svn

  • 分布式版本控制系统 git

1、集中式版本控制系统

  • 所有版本数据只存在一台中央服务器上,每个人本地只有当前工作的文件,没有完整的历史

img

  • 工作流程

    • 从中央服务器检出最新代码,而不是完整的,只是当前最新的代码

    • 本地修改

    • 提交到中央服务器

    • 其他人更新拿到你的修改

  • 优点

    • 结构简单,容易理解

    • 权限管理方便,服务统一控制

    • 存储占用小,本地只有当前版本

  • 缺点

    • 必须联网才能提交,查看历史

    • 服务器一但宕机或者损坏,整个版本库可能丢失

    • 多人同时修改容易冲突,分支的管理弱

    • 速度非常的慢,依赖这个网络

2、分布式版本控制系统

  • 每个人本地都有完整的版本库,包括所有历史,分支,提交记录

  • 中央服务器只作为共享仓库,不是唯一的依赖

img

  • 工作流程

    • 克隆clone整个仓库到本地

    • 本地任意提交,创建分支,回滚,查看历史

    • 推送(push)远程共享服务器

    • 其他人拉取(pull)更新

  • git特性

    • Git只关心文件数据的整体是否发生了变化,而多数的其他系统则只关心文件内容的具体差异,它们在每个版本中记录着各个文件的具体差异

    • 在Git中的绝大多数操作都只需要访问本地文件和资源,不需要联网。这是因为Git在本地磁盘上就保留着所有当前项目的历史更新,所以处理起来速度飞快,这是使用空间换时间的处理方式

    • 使用Git,即使在没有网络或VPN的情况下,你同样可以非常愉快的频繁提交更新,等到有了网络的时候再提交到远程的仓库

  • 对于任何一个文件,在git内部只有三种状态

    • 已提交(committed):表示数据文件已经顺利提交到Git数据库中。

    • 已修改(modified):表示数据文件已经被修改,但未被保存到Git数据库中。

    • 已暂存(staged):表示数据文件已经被修改,并会在下次提交时提交到Git数据库中。

  • 优点

    • 不联网也能工作,本地提交,分支,回滚都可以

    • 服务器坏了不影响本地,安全性更好

    • 分支极其强大,适合多人协作、并行开发

    • 速度极快,大部分操作在本地完成

    • 适合开源、大规模团队

3、git和svn区别

- 集中式(SVN):只有服务器有完整历史,本地只是一份拷贝。

- 分布式(Git):每个人都有完整仓库,服务器只是用来同步。

2、git详解

1、git工作区域

  • 工作区(Working Directory)

    • 能直接看到,编辑的文件

    • 存放代码的实际文件

    • 增删改代码都发生在这里

  • 暂存区(Staging Area / Index)

    • 临时存放即将提交的改动

    • git add 就是将文件存放这里

  • 本地仓库(Local Repository)

    • git 真正保存版本历史的地方

    • 存放所有提交记录,分支,版本

    • git commit 就是将暂存区内容提交到这里

  • git流程

    • 在工作区编写好文件

    • git add 添加到暂存区

    • git commit 将暂存区的内容提交到仓库里面去

img

posted @ 2026-04-09 14:58  乔的港口  阅读(16)  评论(0)    收藏  举报