![移动 git 服务器:我应该让 repos 保持裸状态吗?](https://linux22.com/image/576489/%E7%A7%BB%E5%8A%A8%20git%20%E6%9C%8D%E5%8A%A1%E5%99%A8%EF%BC%9A%E6%88%91%E5%BA%94%E8%AF%A5%E8%AE%A9%20repos%20%E4%BF%9D%E6%8C%81%E8%A3%B8%E7%8A%B6%E6%80%81%E5%90%97%EF%BC%9F.png)
我正在将一堆公司 git 存储库从旧主机拉到我们公司的 git 服务器。我首先git clone
将旧存储库放入新服务器上的存储库目录中。很快我们将把旧主机的 DNS 指向新服务器。
我的问题是:在切换之前,我是否应该将新存储库设为裸存储库,或者它们是否可以按原样运行(正常的、带有.git/
目录的非裸存储库)?我猜是前者,但我希望有人真正了解这一点来确认。
答案1
就像 voretaq7 所说的那样。是的,非常建议这么做。
在GitMagic ch3有一个很好的解释说明为什么要使用裸仓库。
裸存储库之所以如此命名,是因为它没有工作目录;它只包含通常隐藏在 .git 子目录中的文件。换句话说,它维护项目的历史记录,并且从不保存任何给定版本的快照。
裸存储库的作用类似于集中版本控制系统中的主服务器:项目的主目录。开发人员从中克隆您的项目,并将最新的官方更改推送到其中。通常,它驻留在除了传播数据之外几乎不做其他事情的服务器上。开发发生在克隆中,因此主存储库可以没有工作目录。
为了使过渡更容易使用:
git clone --mirror
StackOverflow 上有一篇讨论git clone --mirror 和 git clone --bare 之间的区别。
答案2
你不需要有使它们成为裸存储库,但我会强烈考虑这样做以保持外观一致性(git“服务器”有一个裸存储库,git“客户端”有一个带有 .git 目录的检出)。
如果没有其他事情,备份就更少了。