Skip to main content

Command Palette

Search for a command to run...

Git大型项目浅克隆及历史恢复

Published
1 min read
Git大型项目浅克隆及历史恢复
H

I am ZhangSan, a mere nobody. 我是张三,一个无名小子。

有时候部署机带宽较小,中途有git提交了大文件(如引用的视频介绍等)然后又删除掉,这种情况可以考虑使用浅克隆的方式来进行临时发版。后续有需求可以在慢慢的完整恢复。

# 仅获取最近一次提交的完整代码
git clone --depth 1 -b <branch-name> <repository-url>

# 示例
git clone --depth 1 --branch main https://github.com/user/repo.git

本地快速开发时也可以这样搞

但是有两个后遗症:1、无法查看完整历史提交记录;2、无法切换其他分支

解决方案

1、恢复完整历史记录

git pull --unshallow

2、恢复分支切换

# 查看当前远程分支设置
git config remote.origin.fetch

# 修改远程分支设置
git config remote.origin.fetch "+refs/heads/*:refs/remotes/origin/*"

# 根据配置更新一下
git remote update

参考文章:加速几十倍 git clone 速度的 --depth 1,它的后遗症怎么解决

More from this blog

git切换分支缓慢问题

背景 最近在项目中 test 分支与 master 分支切换时感到非常慢,大概需要1-2分钟 解决 找出两个分支的最大的差异 # 找出两个分支的差异 git diff --dirstat=files master..test # 输出 98.7% vendor/alipaysdk/openapi/v2/aop/request/ 分别检出两个分支到不同目录,经过比较发现文件主要差异为行尾表现不同,master 分支的文件为 LF、test 分支的为 CRLF。 处理方案 使用 .gitatt...

Feb 10, 20261 min read5

软件生产范式: 从 Ddd 到 Sdd + Tdd 的未来之路

未来的软件系统,很可能不再依赖大量手写的代码,而是依赖可验证的业务规范,以及对这些规范的自动化实现。——这正是从 DDD → SDD + TDD 的演进方向。 在 AI 深度参与软件开发的时代,传统的代码中心开发方式正在加速老化。我们正在经历一次结构性转变:从“写代码”转向“写规范 + 写测试 + 让 AI 自动补全逻辑”。 这篇文章试图提供一个前瞻性的观点(深度使用 vibe coding 近

Dec 9, 20253 min read13
软件生产范式: 从 Ddd 到 Sdd + Tdd 的未来之路

多项目部署时使用不同node版本与包管理器

nvm 项目地址:https://github.com/nvm-sh/nvmcorepack 项目地址:https://github.com/nodejs/corepack#readme 场景 前端多项目依赖不同的 nodejs 版本和不同的包管理器(npm、yarn、pnpm) 解决方案 1、依赖不同 nodejs 版本使用 nvm 来解决,项目中新增 .nvmrc 来指定版本号 2、针对不同包管理器的问题使用node自带的 corepack 来解决 # 使用指定版本 node nvm us...

Nov 5, 20251 min read1

hello1024

46 posts