需求

普通项目目录中的 .git 仓库希望转为 gitea 之类所使用的裸仓库。

解决

使用 git clone --mirror 或者 git clone --bare. 两者的区别是:

  • bare 会把仓库中已有的相应的分支整理出来。本地没有的分支和相关合并信息全部舍弃。
  • mirror 不管本地仓库中有没有这个分支,都把相关的分支和合并信息全部保留。

参考

如何将普通的Git仓库转换为裸仓库?

How to convert a normal Git repository to a bare one?

What’s the difference between git clone –mirror and git clone –bare

When creating a git repository that will be on the server, can I convert it to a bare repository? {duplicate}

{Git} 裸代码仓库和镜像代码仓库全解

git clone –mirror 和 git clone –bare 有什么区别