gpt4 book ai didi

git - 如何为 Git 存储库组织和设置镜像备份服务器?

转载 作者:太空狗 更新时间:2023-10-29 14:28:42 24 4
gpt4 key购买 nike

我正在将一些 svn 存储库移动到 Git。所以,我基本上尝试做的是:

  • 设置一台带有裸 Git 存储库的服务器,我将从中 pull 和推送到
  • 为第一台服务器上的所有存储库设置一些备份服务器。

所以,假设我的服务器上有一个目录,例如:$HOME/git/,其中包含裸存储库。例如:

~/git/project1.git
~/git/project2.git
~/git/project3.git
...

我的备份服务器可能是这台服务器的镜像,或者将备份数据保存在存档或其他任何地方。我想我可以做类似的事情:

git clone --bare ssh://gitserver/~user/git/projectX.git

或者也许:

$ cd ~/git/project1.git
$ git bundle create ~/gitbackup/project1.bdl --all

然后将所有项目的所有包复制到我的备份服务器。
但是,如果有很多项目,这两种策略都将是一项乏味的任务,因此在每种情况下,我都需要制作一些脚本来自动执行任务。

我想知道你们是怎么做到的?也许有比我已经考虑过的更好的方法来做到这一点。任何提示将不胜感激。

最佳答案

总体思路是:

还有其他技巧back in 2008 , 基于 gibak ,但想法保持不变。


接收后 Hook 示例:

    #!/bin/sh    #    # A hook script that is called after a successful    # commit is made.    #    # Place this file in .git/hooks and chmod +x    BRANCH=`git branch --no-color 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/\1/'`    git push origin $BRANCH
    #!/usr/bin/env ruby    STDIN.read.split("\n").each do |line|       oldrev, newrev, refname = line.split(' ')       if refname.match(/^refs\/heads\/(.*)/)         branch = $1         `git push origin #{branch}`       else         puts "#{refname} was weird, not sure what to do."       end    end

关于git - 如何为 Git 存储库组织和设置镜像备份服务器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3284415/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com