当前位置: 首页 > news >正文

.git文件夹里所有文件详解

.git文件详解

📂 文件夹部分(对应核心数据)

  1. hooks

    • 存放 Git 钩子脚本(比如提交前自动检查代码、推送前跑测试)
    • 默认是空模板,平时基本不用管
  2. info

    • 存放 Git 的额外信息,比如排除规则(比.gitignore更底层,一般不用)
  3. logs

    • 存放所有 Git 操作的日志(对应你用git reflog查的内容)
    • 包含分支切换、回退、提交的完整记录,是找回误操作的关键
  4. objects

    • Git 的“核心数据库”!
    • 所有文件快照、提交记录、版本历史,都以压缩对象的形式存在这里
    • 你每次git commit,Git 都会把改动打包成新对象存进来
  5. refs

    • 存放所有分支、标签的引用指针
    • refs/heads/main:指向main分支的最新提交版本号
    • refs/remotes/origin/main:指向远程仓库main分支的最新版本号

📄 文件部分(关键配置与状态)

  1. config

    • 你最关心的远程仓库地址,就存在这里!
    • 打开就能看到[remote "origin"]配置,git remote -v命令就是读取这个文件
  2. HEAD

    • 告诉你当前在哪个分支上!
    • 打开文件会看到类似ref: refs/heads/main的内容,代表你现在在main分支
  3. index

    • 对应 Git 的暂存区
    • 你用git add命令后,文件的改动就会写入这个文件,等待后续git commit
    • 你看到它大小是 286KB,说明你已经有不少文件被add到暂存区了
  4. COMMIT_EDITMSG

    • 保存你上一次提交的备注信息
    • 当你用git commit时,默认会加载这个文件作为提交信息模板
  5. FETCH_HEAD/ORIG_HEAD

    • FETCH_HEAD:记录你上一次git fetch拉取的远程分支状态
    • ORIG_HEAD:记录你上一次危险操作(比如resetmerge)前的状态,用于恢复
  6. description

    • 仓库的描述信息,一般 GitWeb 等工具会用到,个人开发基本不用管

✨ 一句话帮你串起来

你平时敲的 Git 命令,本质都是在读写这些文件:

  • git add→ 写index文件
  • git commit→ 写objects+ 更新refsHEAD
  • git push→ 把objectsrefs同步到远程仓库
  • git remote -v→ 读config文件
  • git reflog→ 读logs文件夹

⚠️ 再次提醒:千万不要手动修改/删除这些文件!一旦损坏,你的 Git 仓库就会出问题,甚至丢失历史版本。

git checkout -b dev 会使.git文件夹发生那些变化

git checkout -b dev只改.git里少数几个“指针/日志文件”,工作区文件内容不变

等价命令

gitbranch dev# 1. 创建分支指针gitcheckout dev# 2. 切换到新分支

一、会变的文件(都在 .git/ 下)

  1. .git/HEAD

    • 之前:ref: refs/heads/main
    • 之后:ref: refs/heads/dev
    • 作用:把“当前分支”指向 dev。
  2. .git/refs/heads/dev(新增)

    • 内容:当前 commit 的哈希值(和 main 此刻相同)
    • 作用:新建 dev 分支指针。
  3. .git/logs/HEAD.git/logs/refs/heads/dev

    • 追加一条记录:从 main 切到 dev
    • 作用:git reflog能看到这次切换。
  4. .git/index(暂存区)

    • 若工作区无冲突:不变
    • 若有未提交修改:会刷新为 dev 分支版本(保留你未提交的改动)。

二、完全不变的

  • 工作区所有源码文件(和切分支前一模一样)
  • .git/objects(所有提交/文件快照,没新增、没修改)
  • .git/config(远程地址、用户名等)
  • 其他hooks/info/

三、直观总结

  • 新建分支 = 加一个指针(refs/heads/dev)
  • 切换分支 = 改 HEAD 指向 + 写日志
  • 代码内容本身完全不变,只是换了个“标签”继续开发。

分支操作顺序

# 1. 从 main 新建并切换到 dev 分支gitcheckout-bdev# 2. 添加所有修改gitadd.# 3. 提交修改gitcommit-m"添加实现计划2026-06-07-isolated-sign-recognition.md"# 4. 第一次推送新分支(必须用这条,最稳、不看网络脸色)gitpush-uorigin dev

为什么你之前git push失败、git push -u origin dev成功?

因为:

  • git push依赖网络 + Git 版本 + 配置
  • git push -u origin dev不依赖任何配置,强制推送 + 绑定远程

国内网络连 GitHub 不稳定时,永远用:

gitpush-uorigin 分支名

这是100% 不会失败的推送方式。

万能流程

gitcheckout main# 切回主分支gitpull# 拉取最新gitcheckout-b新分支名# 创建新分支gitadd.gitcommit-m"提交信息"gitpush-uorigin 新分支名# 第一次必用这个
http://www.jsqmd.com/news/970472/

相关文章:

  • 案例:买飞机票;验证码
  • 终极文件编码检测工具:EncodingChecker批量编码验证完全指南
  • Honey Select 2汉化补丁终极指南:3步实现完整中文体验
  • 客户管理系统(CRM)怎么选?2026年主流系统平台对比与场景解析
  • 郑州黄金奢侈品回收店甄选指南(2026 权威版)资质设备报价服务口碑五大维度严选 - 新闻快传
  • 南昌墨客雅筑(宸智雅筑)装饰官方联系方式 合作电话 官网入口 避坑指南 - 资讯纵览
  • 番茄小说下载器终极指南:如何快速下载小说并生成有声书
  • 为什么每个设计者都需要一个像LitCAD这样的开源CAD软件?[特殊字符]
  • 2026 年 6 月沈阳旧书老书回收价格实测3家靠谱商家:联系方式+电话全城免费上门 - 资讯纵览
  • 襄阳地区电捕焦油器厂家实力排行:技术与资质对比 - 奔跑123
  • 上海市金山区上贤雅筑(宸智雅筑)装饰官方联系方式 合作电话 官网入口 避坑指南 - 资讯纵览
  • 大件重物寄快递怎么省钱?这样寄最便宜 - 快递物流资讯
  • 为什么NanaZip是现代Windows用户必备的7-Zip升级版?
  • 如何快速使用AZ音乐下载器:完整功能指南与技巧
  • KMS智能激活工具:从零基础到高级配置的完整指南
  • 零依赖图像对比利器:用Image Compare Viewer重构视觉差异检测体验
  • 2026年6月沈阳老书旧书回收藏家私藏榜单:3 家靠谱回收,老板人好价高不坑人附:联系方式+电话 - 资讯纵览
  • 如何在浏览器中免费解锁加密音乐文件:Unlock-Music完整使用指南
  • 为什么你的微服务越拆越乱?谈谈领域驱动设计的落地教训
  • 地热井抽水试验水位监测设备|高温深井投入式水位计选型方案 - 王工聊地下水监测
  • Cowabunga Lite:无需越狱的iOS深度定制工具完全指南
  • 深圳壹家雅筑(宸智雅筑)装饰官方联系方式 合作电话 官网入口 避坑指南 - 资讯纵览
  • 大模型私有化本地联动TVA(二):大模型自然语言驱动TVA调参|零代码文字指令一键更新质检规则,非标调试效率提升80%
  • 从零到精通:用League Akari打造你的英雄联盟智能助手
  • 2026 金华甄选奢侈品回收店铺推荐权威 TOP 排行榜 - 新闻快传
  • 告别命令行恐惧:用 SRA Toolkit 的 prefetch 和 fastq-dump 轻松下载并转换宏基因组数据
  • 地热资源开发水位监测解决方案|兼顾长期运维与抽水试验勘察 - 王工聊地下水监测
  • 国内主流烟气脱硫厂家盘点:技术与场景适配对比 - 奔跑123
  • 全栈项目实战:MonkeyCode帮我3天上线MVP
  • Java 并发编程图鉴:一口气讲清 volatile 的底层原理