Git 源码打包、迁移、恢复和备份

发布于:2025-04-09 ⋅ 阅读:(434) ⋅ 点赞:(0)

介绍 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/

适合完整备份或交付开发用代码。


五 裸仓库与普通仓库对比

对比项 裸仓库 普通仓库
是否包含源码
是否可运行项目
是否含历史记录
推荐用途 托管、备份、交付 开发、构建、部署


网站公告

今日签到

点亮在社区的每一天
去签到