有一个项目达到了80多M,拉取非常man
实际影响的文件如下
$ du -sh ./*1.0K ./HEAD1.0K ./config1.0K ./description49K ./hooks12K ./index1.0K ./info3.0K ./logs80M ./objects4.0K ./packed-refs2.0K ./refs$ du -sh ./objects/*116K ./objects/pack/pack-2be7641a760fcd46b8fe118cf2ffdcd91d60c3c9.idx80M ./objects/pack/pack-2be7641a760fcd46b8fe118cf2ffdcd91d60c3c9.pack
$ lsHEAD // 指向当前分支branches/ // 目录config // 项目特有的配置选项description // 仅供 GitWeb 程序使用hooks/ // 保存了客户端或服务端钩子脚本index // 保存了暂存区域信息info/ // 保存了一份不希望在 .gitignore 文件中管理的忽略模式 (ignored patterns) 的全局可执行文件objects/ // 存储所有数据内容refs/ // 存储指向数据 (分支) 的提交对象的指针
除了分别打包gogs存储库,自定义和数据库之外,Gogs还提供了两个命令,用于统一备份,还原甚至迁移到另一个数据库引擎的过程。
# 没有任何标志,backup 命令会将所有 gogs-repository、custom 和 database 打包到当前目录下的单个 zip 存档中(例如 gogs-backup-xxx.zip)./gogs backup# 如果您的gogs存储库包含GB的原始数据,这可能是一个坏主意,在这种情况下,您可以应用–exclude-repos标志./gogs backup --exclude-repos# 如果你的 custom/conf/app.ini 不寻常,请确保像往常一样通过 –config 标志指定它:./gogs backup --config=my/custom/conf/app.ini
如果你只对备份数据库感兴趣,或者想从一个数据库引擎(例如SQLite3)迁移到另一个引擎(例如MySQL),–database-only是你的朋友:./gogs backup --database-only数据库的备份格式是可移植的JSON文件,每个文件对应一个数据库表,你可以对这些文件做任何你想做的事情。
命令还具有指示仅还原数据库或备份存档中所有内容的标志:如果表未显示在备份存档中,则当前数据库表中的任何内容将保持不变。./gogs restore --database-only --from="gogs-backup-xxx.zip"非标配置,要声明./gogs restore --database-only --from="gogs-backup-xxx.zip" --config=my/custom/conf/app.ini
有 3 个步骤可以确定使用哪个自定义/conf/app.ini 命令:
使用您指定的标志 --config 。
使用存储在备份存档中的那个。
使用 $(pwd)/custom/conf/app.ini 中的那个。
如果所有3个步骤都失败了,对不起,无法执行还原过程。
1)每天晚上