Git仓库镜像操作时排除指定文件夹(如.github)的相关咨询
Git镜像操作排除.github文件夹问题解答
结论
不可以直接删除.github文件夹后再推送。
原因:git clone --mirror命令克隆得到的是裸仓库,没有普通仓库的工作文件目录,你进入repo目录后看到的都是Git版本库的元数据,不存在可以直接手动删除的.github实体文件夹,直接删除文件的操作对裸仓库完全无效。
适配你现有镜像流程的正确操作步骤
如果需要保留源仓库所有分支、标签、提交历史等完整镜像信息,仅删除.github目录,按以下步骤操作:
- 先执行你原有的前两步操作:
git clone --mirror 源镜像仓库地址 repo.git cd repo.git - 从裸仓库临时检出工作区,删除.github目录后提交变更:
# 临时创建工作区目录 git worktree add ../work cd ../work # 删除.github目录并提交 rm -rf .github git add . git commit -m "remove .github directory" # 返回裸仓库目录 cd ../repo.git - 执行镜像推送到本地仓库:
git push --mirror 本地仓库地址
简化方案(无需保留完整镜像信息的场景)
如果你不需要保留源仓库的全部分支、标签等镜像特性,用普通克隆操作更简单:
- 普通克隆源仓库
git clone 源镜像仓库地址 repo cd repo - 删除.github目录并提交
rm -rf .github git add . git commit -m "remove .github directory" - 推送到本地目标仓库
git remote set-url origin 本地仓库地址 git push --all origin git push --tags origin
内容的提问来源于stack exchange,提问作者Babu Rajagopal
相关产品推荐
相关产品推荐

