Git教程

目录

一、Git工作流程

1. 工作区 —— 你的书桌

2. 暂存区 —— 你的待邮寄篮子

3. 本地仓库 —— 你的个人保险箱

4. 远程仓库 —— 老师的收件箱

5. 总结

二、Git 工作区、暂存区和版本库

三、Git 文件状态

1、工作目录

2、暂存区

3、本地仓库

4、文件状态的转换流程

四、常用的Git命令


Git 教程 | 菜鸟教程

一、Git工作流程

1. 工作区 —— 你的书桌

这是你实际修改文件的地方。你在这里写代码、删删改改。

动作:你在这里编写了新功能或修复了 Bug。

2. 暂存区 —— 你的待邮寄篮子

当你觉得作业写得差不多了,你会把它放进一个篮子里,准备打包。

关键指令:git add

意义:告诉 Git,这些改动我确认要提交了,先帮我记着。

3. 本地仓库 —— 你的个人保险箱

你把篮子里的东西打包好,贴上标签(提交信息),锁进自己的保险箱。

关键指令:git commit

意义:改动正式成为了项目历史的一部分。即便你之后改乱了,也可以随时从这里找回。

4. 远程仓库 —— 老师的收件箱

最后,你把保险箱里的代码通过网络发送给远程服务器,方便其他人查看或合作。

关键指令:git push

意义:备份代码,并与团队共享进度。

5. 总结

简单总结:
修改代码 →add(放进篮子) →commit(存入箱子) →push(寄给远方)。

二、Git 工作区、暂存区和版本库

工作区:就是你在电脑里能看到的目录。

暂存区:英文叫 stage 或 index。一般存放在 .git 目录下的 index 文件(.git/index)中,所以我们把暂存区有时也叫作索引(index)。

版本库:工作区有一个隐藏目录 .git,这个不算工作区,而是 Git 的版本库。

三、Git 文件状态

Git 的文件状态分为三种:工作目录、暂存区、本地仓库。了解这些概念及其交互方式是掌握 Git 的关键。

1、工作目录

工作目录是你在本地计算机上看到的项目文件。它是你实际操作文件的地方,包括查看、编辑、删除和创建文件。所有对文件的更改首先发生在工作目录中。

在工作目录中的文件可能有以下几种状态:

未跟踪:新创建的文件,未被 Git 记录。

已修改:已被 Git 跟踪的文件发生了更改,但这些更改还没有被提交到 Git 记录中。

2、暂存区

暂存区,也称为索引,是一个临时存储区域,用于保存即将提交到本地仓库的更改。你可以选择性地将工作目录中的更改添加到暂存区中,这样你可以一次提交多个文件的更改,而不必提交所有文件的更改。

使用git add <filename>命令将文件从工作目录添加到暂存区。

使用git add .命令将当前目录下的所有更改添加到暂存区。

git add <filename> # 添加指定文件到暂存区 git add . # 添加所有更改到暂存区

3、本地仓库

本地仓库是一个隐藏在.git目录中的数据库,用于存储项目的所有提交历史记录。每次你提交更改时,Git 会将暂存区中的内容保存到本地仓库中。

使用git commit -m "commit message"命令将暂存区中的更改提交到本地仓库。

git commit -m "commit message" # 提交暂存区的更改到本地仓库

4、文件状态的转换流程

未跟踪: 新创建的文件最初是未跟踪的。它们存在于工作目录中,但没有被 Git 跟踪。

touch newfile.txt # 创建一个新文件 git status # 查看状态,显示 newfile.txt 未跟踪

已跟踪: 通过git add命令将未跟踪的文件添加到暂存区后,文件变为已跟踪状态。

git add newfile.txt # 添加文件到暂存区 git status # 查看状态,显示 newfile.txt 在暂存区

已修改: 对已跟踪的文件进行更改后,这些更改会显示为已修改状态,但这些更改还未添加到暂存区。

echo "Hello, World!" > newfile.txt # 修改文件 git status # 查看状态,显示 newfile.txt 已修改

已暂存: 使用git add命令将修改过的文件添加到暂存区后,文件进入已暂存状态,等待提交。

git add newfile.txt # 添加文件到暂存区 git status # 查看状态,显示 newfile.txt 已暂存

已提交: 使用git commit命令将暂存区的更改提交到本地仓库后,这些更改被记录下来,文件状态返回为已跟踪状态。

git commit -m "Added newfile.txt" # 提交更改 git status # 查看状态,工作目录干净

四、常用的Git命令

查看Git日志:git log --oneline(按q退出Git分页器,回到命令行)

查看Git日志前三行:git log --oneline -3

查看Git的历史操作记录:git reflog(按q退出)

回退到上一次的提交:git reset --soft HEAD~1

彻底删除提交和代码改动:git reset --hard HEAD~1

hash 值:每一行最前面那串黄色的字符,通常是 7-8 位。

给悬空的提交(分离的HEAD)创建一个新分支:git branch 新分支名hash值(7305d48)

网页端删除了令牌,使用新命令更新地址:git remote set-url origin <新的带令牌的URL>

查看你当前本地仓库关联的远程仓库:git remote -v

相关新闻

STM32F103驱动AT24C02 EEPROM的I2C硬件时序与稳定读写实战

STM32F103驱动AT24C02 EEPROM的I2C硬件时序与稳定读写实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/21 2:11:47 阅读更多 →
Linux DNS服务实战:从Bind安装到Unknown host故障排查

Linux DNS服务实战:从Bind安装到Unknown host故障排查

前几天帮某公司排查一个内网域名解析故障&#xff0c;应用一直报“Unknown host”&#xff0c;折腾了大半天。后来复盘发现&#xff0c;问题既不在网络&#xff0c;也不在服务进程&#xff0c;而是 DNS 服务器上“监听地址”和“查询权限”的语义没理清。那次之后&#xff0c;我…

2026/10/21 2:11:47 阅读更多 →
Qt桌面端地图开发:QWebEngineView加载百度/谷歌地图与双向通信实战

Qt桌面端地图开发:QWebEngineView加载百度/谷歌地图与双向通信实战

简介&#xff1a;这份资源面向需要在Qt桌面应用中嵌入在线地图的C开发者&#xff0c;重点解决百度地图与谷歌地图的加载与交互问题。包内共25个文件&#xff0c;以cpp源码、h头文件、html页面、ui界面文件及pro工程文件为主&#xff0c;另含编译生成的obj、exe、pdb等中间产物&…

2026/10/21 2:11:47 阅读更多 →

最新新闻

服务器磁盘管理实战:从选型、RAID到LVM与性能排障全解析

服务器磁盘管理实战:从选型、RAID到LVM与性能排障全解析

最近帮一个业务团队做新服务器选型与磁盘初始化配置时&#xff0c;发现很多开发同学对磁盘这块的知识还停留在“机械硬盘 vs 固态硬盘”的层面。真要落到服务器选型、多块硬盘怎么组合、RAID 怎么选、系统装完以后磁盘怎么规划、后续怎么扩容和排障&#xff0c;往往就缺乏一套完…

2026/10/21 2:49:01 阅读更多 →
RAG知识库问答实战:从原理、技术选型到工程落地优化

RAG知识库问答实战:从原理、技术选型到工程落地优化

1. RAG 到底解决了什么问题&#xff0c;为什么现在非学不可最近两年&#xff0c;大模型相关的技术方向非常多&#xff0c;微调、Agent、多模态、RAG……如果不深入去看&#xff0c;很容易被各种名词绕晕。尤其是 RAG&#xff08;Retrieval-Augmented Generation&#xff0c;检索…

2026/10/21 2:49:01 阅读更多 →
RAG知识库问答实战:从原理到代码落地

RAG知识库问答实战:从原理到代码落地

前一阵子在做知识库问答项目时&#xff0c;发现网上 RAG 相关的教程虽然很多&#xff0c;但大部分要么只讲原理、不给可运行代码&#xff0c;要么代码能跑但不解释为什么这么设计。对刚接触大模型应用开发的同学来说&#xff0c;很容易卡在“原理看懂了&#xff0c;一动手就报错…

2026/10/21 2:49:01 阅读更多 →
RAG入门到实战:用LangChain+Chroma搭建知识库问答系统

RAG入门到实战:用LangChain+Chroma搭建知识库问答系统

先给结论&#xff1a;RAG 是目前搭建知识库问答最稳的基线方案。RAG 的全称是 Retrieval-Augmented Generation&#xff0c;检索增强生成。它解决的问题很直接&#xff1a;大模型不知道你的私有资料、内部文档、产品手册和业务数据&#xff0c;那就先把这些资料切块、向量化、存…

2026/10/21 2:49:01 阅读更多 →
火焰数据集YOLOv5训练实战:从标注文件到可推理模型

火焰数据集YOLOv5训练实战:从标注文件到可推理模型

简介&#xff1a;火焰数据集&#xff08;含标注好的标签&#xff09;面向从事目标检测的开发者与研究者&#xff0c;尤其适合使用 YOLOv5 训练火焰识别模型的场景&#xff0c;可用于火灾预警、视频监控等实际项目。资源包共 5260 个文件&#xff0c;包含 1853 张 jpg 图像、185…

2026/10/21 2:49:01 阅读更多 →
Quartz动态设置并发数量

Quartz动态设置并发数量

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/21 2:48:00 阅读更多 →

日新闻

统一内存+量化:锐龙AI Max PRO 400如何本地跑320B大模型

统一内存+量化:锐龙AI Max PRO 400如何本地跑320B大模型

这段时间硬件圈和AI圈都在传一个事&#xff1a;AMD锐龙AI Max PRO 400系列把最高192GB统一内存搬进了PC形态的产品里&#xff0c;按宣传口径&#xff0c;本地跑320B参数的大家伙不再是纸面概念。我第一反应倒不是“内存真大”&#xff0c;而是这话背后的含金量——它把过去只能…

2026/10/21 0:00:11 阅读更多 →
AI助手深度使用体验:对话质量、长文本处理与指令遵循如何留住用户

AI助手深度使用体验:对话质量、长文本处理与指令遵循如何留住用户

1. 从“封号重开”这个行为说起&#xff1a;用户到底在追求什么“封号重开”这四个字&#xff0c;放在任何产品语境里都带着一股决绝的味道。一个账号从零开始积累使用记录、调教偏好、沉淀工作流&#xff0c;背后是大量的时间和精力成本。正常情况下&#xff0c;没有人愿意主动…

2026/10/21 0:00:11 阅读更多 →
ROS中YOLOv3工程落地:通信同步、坐标变换与性能调优

ROS中YOLOv3工程落地:通信同步、坐标变换与性能调优

1. 为什么在ROS里硬刚YOLOv3不是“炫技”&#xff0c;而是工程落地的必经之路我第一次在某高校机器人实验室看到那台搭载Jetson TX2的移动底盘原地打转、反复识别错垃圾桶时&#xff0c;就意识到&#xff1a;单纯跑通darknet_ros demo和真正让YOLOv3在ROS里“干活”&#xff0c…

2026/10/21 0:00:11 阅读更多 →

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型&#xff08;GMM&#xff09;的语音识别系统&#xff0c;很多人第一反应就是一堆数学公式&#xff0c;觉得门槛很高。但如果你真的在MATLAB里把它落地跑通&#xff0c;会发现核心其实就是三件事&#xff1a;把声音变成特征向量&#xff0c;用GMM给每个类别…

2026/10/20 10:02:13 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人&#xff0c;但落到具体操作上&#xff0c;无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程&#xff1a;对图像做反白、改调色板、彩色转灰度&#xff0c;最后把像素数据导出成txt文件。单看每一…

2026/10/20 20:43:59 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词&#xff0c;你会发现一个很有意思的现象&#xff1a;每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型&#xff0c;有人指的是运动控制系统&#xff0c;还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/20 2:50:50 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 10:02:08 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 9:50:17 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 9:50:45 阅读更多 →