Git 的工作原理

简介: 简述 Git 的工作原理,三个主要的区域等

1 - 概述

Git 是一种分布式 (Distributed) 版本控制系统 (Version Control System),用于记录一个或若干个文件内容的变化,查阅和回溯。

对应集中式版本控制系统,如 SVN,集中式的弊端为需要一个中央处理器,中央处理器单点故障,就无法协同工作。或可能丢失全部数据。

分布式通俗说就是到处都有, Git 每个用户本地都包含完整的仓库,中央处理器故障或者断网的情况下都不影响本地工作,仍然可以进行提交、回退等操作。Git 的工作方式就是记录追踪的文件的更改。


Git 目录中的文件主要有两种状态:追踪和未追踪,追踪状态又可细分为三种,所以有四种状态:

  • 未追踪 (Untracked): 此类文件的修改不受 Git 管理,剩余的三类文件即为 追踪 状态。
  • 未修改 (Unmodified): Git 管理并记录此类文件,当前处于与前一个版本一致未发生变化的状态。
  • 修改 (Modified): 此类文件为 未修改 状态被修改后的状态,通过添加到暂存区可以进入 暂存 状态
  • 暂存 (Staged): 追踪的文件被修改的文件后,添加到暂存区,即可进入 暂存 状态。此状态的文件被提交后将恢复为 未修改 状态。

在这里插入图片描述

2 - 三个区域

Git 主要包括三个区域:

  • 工作区 (Working directory): 实际的代码,目录
  • 暂存区 (Stage 或 Index): 所有添加到暂存区的修改,用于构成下一次提交 (commit)
  • 本地仓库 (Repository)

如图:

zones.png

工作区 里的修改通过 git add 添加到 暂存区,这些内容再通过 git commit 提交到 本地仓库

本地仓库的修改通过 git push 推送到远端仓库,远端仓库的修改通过 git pull 更新到本地仓库。

此外还有一个区域用于贮存代码,这个区的存储结构为栈结构,先进后出,通过 git stash 来处理。

3 - 用途

理解 Git 的工作原理,有助于更好的使用 Git 的命令,如

git reset [--mixed | --soft | --hard ]  [<commit>]

gitreset.png

列举出的 git reset 的三个选项用于确定作用范围。

  • soft 只修改本地仓库的提交历史
  • mixed 除了修改本地仓库的提交历史,也会修改暂存区的文件
  • hard 会影响到这三个区域

注:使用 --hard 时 需要非常谨慎,会造成本地代码修改丢失。

目录
相关文章
|
6月前
|
Linux 网络安全 开发工具
1.Git使用技巧-基础原理
1.Git使用技巧-基础原理
66 0
|
Linux 网络安全 开发工具
【Git】Git 原理和使用
【Git】Git 原理和使用
418 4
|
6月前
|
存储 开发工具 git
Git的基本操作和原理
Git的基本操作和原理
|
3月前
|
存储 开发工具 数据库
Git的工作原理是什么
【8月更文挑战第24天】Git的工作原理是什么
52 0
|
5月前
|
前端开发 持续交付 开发工具
详细介绍Git的基本原理、在前端开发中的应用以及如何使用Git来优化团队协作
【6月更文挑战第14天】Git是前端开发中的必备工具,它通过分布式版本控制管理代码历史,支持分支、合并和冲突解决,促进团队协作。在前端开发中,Git用于代码追踪、版本控制、代码审查和持续集成部署,优化团队协作。制定分支策略、编写清晰提交信息、定期合并清理分支以及使用Git钩子和自动化工具能进一步提升效率。理解并善用Git,能有效提升前端项目的质量和开发效率。
83 3
|
6月前
|
运维 测试技术 开发工具
Git 的原理与使用(下)(二)
新特性或新功能开发完成后,开发人员需合到 develop 分支。
57 2
|
6月前
|
Java 网络安全 开发工具
Git 的原理与使用(中)(三)
别的机器可以“克隆”这个原始版本库,而且每台机器的版本库其实都是一样的,并没有主次之分。
45 1
|
6月前
|
存储 安全 开发工具
Git 的原理与使用(中)(二)
Fast Forward 模式(ff模式) 通常合并分支时,如果可以,Git 会采用 Fast forward 模式。
40 1
|
6月前
|
安全 Java 开发工具
Git 的原理与使用(中)(一)
分支是Git的杀手级功能之一。
50 1
|
6月前
|
存储 算法 开发工具
Git 的原理与使用(上) (二)
如果直接将某个文件拷贝到 .git 文件的同级目录gitcode下,此时这个文件是不会被Git管理的。
58 1