介绍 Git 项目打包方式,适用于源码交付、迁移、备份等场景。
一 Git 仓库的两种类型
在实际项目开发与交付中,常接触 的 两种 Git 仓库:
仓库类型 | 是否包含源码 | 适用场景 |
---|---|---|
普通仓库 | 是 | 本地开发、运行、构建 |
裸仓库 | 否 | 代码托管、只读交付、备份 |
普通仓库结构
裸仓库结构
裸仓库本质上就是 .git
目录的内容,不包含源码文件,仅用于版本信息的存储与同步。
二 从裸仓库恢复完整项目源码
方法一 使用 git clone
git clone /path/to/project.git restored-project
这将还原出完整的源码项目,并自动设置为普通仓库。
方法二 手动恢复
mkdir restored-project
cd restored-project
git init
git remote add origin /path/to/project.git
git fetch origin
git checkout -b dev origin/dev
根据需要切换到任意远程分支,恢复相应版本。
辅助命令
校验是不是裸仓库:
git rev-parse --is-bare-repository
返回结果是 true
,说明这是裸仓库。
查看当前项目的所有分支:
git branch -a
查看远程分支的提交记录,
git log origin/dev --graph -n 5 --pretty=format:"%h %ad | %s" --date=short
常用格式变量:
%h
提交短哈希%ad
提交时间%s
提交说明%an
作者名
选择一个有内容的分支 :
git checkout -b dev origin/dev
三 上传到 GitLab 并保留所有分支
第一步 添加远程仓库地址
git remote add origin https://gitlab.com/yourname/project.git
第二步 推送所有分支和标签
git push --all origin
git push --tags
四 如何打包仓库进行交付或备份
打包成裸仓库
git clone --bare project project.git
tar -czf project.git.tar.gz project.git
适合部署、交付、只读共享。
打包 .git
目录
cd project
cp -r .git ../git-only
tar -czf git-only.tar.gz ../git-only
适合仅迁移 Git 历史,不含源码。
打包完整项目(源码加 Git)
tar -czf project-full.tar.gz project/
适合完整备份或交付开发用代码。
五 裸仓库与普通仓库对比
对比项 | 裸仓库 | 普通仓库 |
---|---|---|
是否包含源码 | 否 | 是 |
是否可运行项目 | 否 | 是 |
是否含历史记录 | 是 | 是 |
推荐用途 | 托管、备份、交付 | 开发、构建、部署 |