通过 rsync 迁移 git 存储库

migrating a git repository via rsync

不久前,我们在本地服务器上设置了一个供内部使用的 git 存储库。服务器不在业务线上,因此具有非静态ip。

我们想将 git 源从本地服务器移动到新的远程服务器(这是我们的专用服务器,而不是 github 或类似服务器)。

我们可以将整个 git 目录同步到新服务器吗?

虽然最简单的方法肯定是做一个 git clone,是的,你可以使用 rsync。

Git 存储库没有将它们链接到它们的目录或服务器的任何东西(除非你专门配置了一些东西)。您可以像移动任何其他文件目录一样移动它们。 U 盘、scp、rsync、mv、zip、tar...随便什么。

最安全的方式(不会带来本地配置或挂钩,它们可能特定于本地环境,并且包含您并不总是想要的敏感信息include in an archive) 将使用 git bundle.

git bundle create /tmp/myrepo.bundle --all

参见“How can I email someone a git repository?

这只会创建 一个 文件(易于复制),您可以从中克隆或获取该文件:
在目标服务器上

git clone myrepo.bundle
cd myrepo