You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何自动创建Git仓库离线备份以恢复Bitbucket云端仓库?

完整备份Git仓库的可靠方法

首选方案:git clone --mirror

这是备份Git仓库最彻底、最高效的方式,专门用于完整复制远程仓库的所有内容——包括所有分支、标签、提交记录、甚至仓库配置和钩子。

你觉得本地没完整下载是因为镜像仓库是裸仓库(没有工作区,看不到文件),所有仓库数据都存在.git目录里。验证备份完整性可以在镜像仓库目录下执行:

  • git branch -a:查看所有远程分支(会显示origin/*的全部分支)
  • git tag:查看所有标签
  • git log --oneline --all:查看所有提交记录

需要恢复时,直接把这个镜像仓库推送到新的远程仓库即可:

git push --mirror <新仓库地址>

普通clone的问题与补救方法

普通git clone只会默认拉取远程的默认分支(比如main),git pull --all也仅会拉取已跟踪的远程分支,所以拿不到所有分支。如果一定要生成带工作区的备份,可以遍历远程分支逐个创建本地分支:

# 先克隆仓库
git clone <仓库地址>
cd <仓库目录>

# 遍历所有远程分支,创建对应的本地分支
for branch in $(git branch -r | grep -v HEAD); do
    local_branch=${branch#origin/}
    git checkout -b $local_branch $branch
done

# 拉取所有标签
git fetch --tags

但这种方法步骤繁琐,不如--mirror高效,适合需要直接使用工作区的场景,纯备份的话没必要。

关于遍历checkout的优劣

遍历远程分支逐个checkout能生成带工作区的完整分支备份,但备份的核心需求是完整保存仓库数据,--mirror已经一步到位,不需要额外操作。如果只是为了灾难恢复,镜像仓库足够,而且占用空间更小、操作更简单。

内容的提问来源于stack exchange,提问作者Putte

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 03:41:41