Git 和子存储库

Don*_*Don 6 backup git

无论如何要强制 git 将文件和目录包含在驻留在当前存储库中某处的其他存储库中?

我问的原因是我有一个这样的布局:

Projects
  |- Some Project
  |   |- .git
  |- Another Project
  |   |- .git
  |- Yet Another Project
  |   |- .svn
  |- A non versioned Project
  |- etc..
Run Code Online (Sandbox Code Playgroud)

现在我想做的是git init在 Projects 中,然后运行每日 cron 作业,该作业推送到使用以下命令备份的文件夹中的裸存储库

...<set variables>...
git add -A
git commit -m "Automatic Update $Date $Time"
git push --mirror --repo=/backedup/Projects
Run Code Online (Sandbox Code Playgroud)

我的计划是添加.git.svn.hg等,.gitignore并将其作为文件的安全备份。

编辑:我在下面有一些很好的建议,但我仍然很好奇这种特殊情况是否可能。使用 rdiff 支持整个文件夹仍然意味着将膨胀的文件备份到我的备份媒体上,而裸存储库需要 4 MB 而不是 160 MB,而且我真的很想知道现在是否有可能,因为我一直在考虑它或我会失眠

Von*_*onC 0

这种特殊情况是不可能的。而且不实用。

  • 将检测嵌套的 Git 存储库,并且git add -A根目录不会考虑嵌套的.git子目录。
  • .svn可以,但是需要.gitignore仔细校准才能忽略其他一切。

正如akira在评论中所建议的,通过压缩 ssh 进行增量副本的单独备份作业是更好的解决方案。