如何从远程仓库获取不可访问提交并为其创建引用?
为孤立提交创建引用的操作步骤
第一步:确保本地能获取到目标提交
- 如果提交来自当前仓库的远程历史,先拉取所有远程数据:
git fetch origin - 如果提交来自外部复刻仓库,先添加该复刻仓库为远程源并拉取:
git remote add fork-repo <复刻仓库的Git地址>git fetch fork-repo
第二步:创建引用(分支或标签二选一)
方式一:创建分支(适合需要后续基于该提交开发的场景)
- 在本地创建分支指向目标提交:
git checkout -b recover-branch <丢失的提交ID> - 将新分支推送到远程仓库,完成持久化引用:
git push origin recover-branch
方式二:创建标签(适合仅需标记该提交的场景)
- 创建标签指向目标提交:
git tag recover-tag <丢失的提交ID> - 将标签推送到远程仓库:
git push origin recover-tag
提示:如果本地仓库已经存在该提交的对象数据,也可以直接用
git branch <分支名> <提交ID>或git tag <标签名> <提交ID>创建引用,无需先checkout。
内容的提问来源于stack exchange,提问作者Igor Mukhin
相关产品推荐
相关产品推荐

