我们的本地服务器上有一个 git 服务器。我想从服务器端直接复制“repositoryname.git”文件夹备份这些 git 存储库。
如果新服务器出现问题,是否可以从这些文件夹中恢复文件?我认为存储在这个 .git 文件夹上的 Object 文件夹中的文件是断裂的。并且不能从服务器直接访问。
谢谢你。
为了从服务器备份裸仓库,您应该避免直接复制repositoryname.git
文件夹(其中包含本地配置,包括 gitlab 挂钩),而是执行 git bundle(请参阅我对 git bundle 的回答)。
cd repositoryname.git
git bundle create /tmp/repositoryname.bundle --all
这将生成一个文件,您可以轻松地复制该文件,并且可以从中克隆以在另一台机器上恢复该存储库。
.git/object
克隆后,将使用正确的对象重新填充该文件夹。