从 Xcode 服务器备份 Git 存储库

从 Xcode 服务器备份 Git 存储库

我有一台已激活 Xcode 服务的 OSX 服务器。该服务器托管多个 git 存储库,git 由服务 Xcode 服务器自动安装。

我使用 Time Machine,但问题是我没有每个存储库的备份,而只有整个服务器的备份。

我还能看到 Time Machine 备份中的存储库吗,或者 git 中是否有一些更简单的命令可以让我进行备份?

答案1

当您打开 Time Machine 卷上的 Time Machine 备份文件夹时,您仍然可以看到每个单独的目录,因此无论您的 Git 存储库作为裸存储库存储在哪里,您都能够找到并复制它们。

您还可以使用git archive命令

git archive -o archive.zip master

如果你想对所有分支执行此操作,你可以执行以下操作:

for branch in $(git for-each-ref --format='%(refname)' refs/heads/); do
    git archive -o "${branch##*/}.zip" $branch
done

通过从字符串开头剥离最长的匹配项,替换${branch##*/}将转换refs/heads/master为。master*/

这是受到一个关于遍历分支的 Stack Overflow 问题

相关内容