⚡ 编程实验室🏗️ HTML🎨 CSS⚡ JavaScript🐍 Python🗄️ SQL☕ Java⚛️ React💚 Vue🟢 Node.js⚙️ C语言🐘 PHP🐹 Go🔷 TypeScript🐬 MySQL🔧 C++🎯 C#🦀 Rust🅱️ Bootstrap💡 jQuery🎸 Django🍃 MongoDB👗 Sass🎪 Kotlin📊 R语言📋 XML📊 Excel🐘 PostgreSQL🐳 Docker🅰️ Angular🎮 游戏🏠 网站首页

Git Archive 高级用法:只导出指定子目录并自动版本号注入

标准 git archive 可以生成 tar/zip,但如何排除 .git 文件夹、只包含特定文件或动态写入版本号?本教程深入 git archive 的自定义与后处理技巧。 · 难度:入门 · +10XP

Git Archive 高级用法:只导出指定子目录并自动版本号注入

很多发布流程需要从仓库中提取干净的源代码包,但 git archive 默认导出整个工作树。通过 --prefix 和路径参数可以精确控制内容。更强大的是结合 export-subst 属性,可以在文件中自动插入 commit hash、日期等信息。本教程会展示如何创建一个仅包含 src/ 和 README.md 的发布包,并让其中的 version.txt 动态包含 git describe 结果。还会演示如何用自定义导出过滤脚本排除所有测试文件。

# 仅导出 src 目录
git archive -o release.zip HEAD:src

# 使用 .gitattributes 注入版本信息 echo 'version.txt export-subst' >> .gitattributes echo 'VERSION=$Format:%(describe)$' > version.txt git archive -o release-with-version.tar.gz HEAD

# 排除多个目录 git archive --format=tar HEAD --output=code.tar -- '*.go' ':(exclude)vendor'

Ctrl+Enter
🚀 升级VIP
解锁全部课程+AI助手

🏆 学习排行

加载中...

📊 统计

📖 124 篇
0 完成
🔥 0