如何使用git下载远程服务器中指定时间点之前的仓库更新?
Git拉取指定时间点之前提交的操作方法
场景1:尚未克隆远程仓库
方案A:需要保留提交历史
- 先执行最小深度浅克隆,降低首次拉取体积:
git clone --depth 1 <远程仓库地址>cd <本地仓库目录名> - 筛选指定时间点之前的最新提交哈希,示例时间为2023年10月1日0点,目标分支为main:
git rev-list -n 1 --before="2023-10-01 00:00:00" origin/main - 拉取目标提交及对应历史(若需要完整历史将
--depth 100替换为--unshallow):git fetch --depth 100 origin <上一步拿到的commit哈希> - 检出到目标提交,完成拉取:
git checkout <commit哈希>
方案B:仅需要代码快照,不需要提交历史
- 筛选目标提交哈希后直接拉取代码压缩包,无需克隆仓库:
git archive --format=zip --remote=<远程仓库地址> <commit哈希> -o code_snapshot.zip
场景2:已存在本地仓库,需要更新到指定时间点版本
- 先拉取远程最新分支引用:
git fetch origin - 筛选指定时间点之前的最新提交哈希:
git rev-list -n 1 --before="你的目标时间,格式示例:2023-10-01 00:00:00" origin/目标分支名 - 将本地分支重置到目标提交:
注意:该操作会丢弃本地所有未提交修改,操作前请确认本地内容已备份
git reset --hard <上一步拿到的commit哈希>
内容的提问来源于stack exchange,提问作者L. Ouyang
相关产品推荐
相关产品推荐

