自动镜像 git 个仓库
Automatically mirror git repository
我有一个 git 我可以通过 ssh 访问。我想通过镜像将服务器备份到另一个位置。我有另一台服务器,我可以在其中设置另一个 git 存储库。
我的想法是:以某种方式自动将提交从服务器 1 转发到服务器 2,这可能吗?
您可以使用
git clone
如果您在备份服务器上安装了客户端客户端。然后可以将其设置为 运行 定期自动更新。
要在对存储库执行推送后自动执行操作,可以使用 post-receive
挂钩。整个推送过程完成后会调用它。
您可以简单地使用带有 --mirror
[1] 选项的标准 git push
推送到其他服务器:
#!/bin/bash
git push --mirror git@example.com:mirror.git
[1]
--mirror
Instead of naming each ref to push, specifies that all refs under
refs/ (which includes but is not limited to refs/heads/,
refs/remotes/, and refs/tags/) be mirrored to the remote
repository. Newly created local refs will be pushed to the remote
end, locally updated refs will be force updated on the remote end,
and deleted refs will be removed from the remote end. This is the
default if the configuration option remote.<remote>.mirror is set.
我有一个 git 我可以通过 ssh 访问。我想通过镜像将服务器备份到另一个位置。我有另一台服务器,我可以在其中设置另一个 git 存储库。
我的想法是:以某种方式自动将提交从服务器 1 转发到服务器 2,这可能吗?
您可以使用
git clone
如果您在备份服务器上安装了客户端客户端。然后可以将其设置为 运行 定期自动更新。
要在对存储库执行推送后自动执行操作,可以使用 post-receive
挂钩。整个推送过程完成后会调用它。
您可以简单地使用带有 --mirror
[1] 选项的标准 git push
推送到其他服务器:
#!/bin/bash
git push --mirror git@example.com:mirror.git
[1]
--mirror Instead of naming each ref to push, specifies that all refs under refs/ (which includes but is not limited to refs/heads/, refs/remotes/, and refs/tags/) be mirrored to the remote repository. Newly created local refs will be pushed to the remote end, locally updated refs will be force updated on the remote end, and deleted refs will be removed from the remote end. This is the default if the configuration option remote.<remote>.mirror is set.