V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
git
Pro Git
Atlassian Git Tutorial
Pro Git 简体中文翻译
GitX
7164447205
V2EX  ›  git

git fetch 能否用来备份仓库?

  •  
  •   7164447205 · 4 天前 · 916 次点击

    备份仓库有什么好方法?

    起初,我用 git bundle 来备份仓库,但是空间消耗太快,我想尽可能节省空间。

    后来发现,Gitea 有「镜像仓库」功能。

    上游仓库尚在,本地仓库可以同步更新,上游仓库删除,本地仓库也不会随之消失,本地仓库占用的空间永远与上游仓库相近。

    不过这项功能有个缺点,仓库作者可以通过强制推送来删除上游仓库的内容,甚至把仓库换成另一个仓库。若上游仓库换成了另一个仓库,本地仓库也会同步上游仓库更改,变成另一个仓库。

    无意间发现了 git fetch

    执行 git fetch <repo> *:refs/remotes/0924,待命令执行完毕,refs/remotes/0924 下会完整显示上游仓库引用的一切,git checkout 命令也可调出远程仓库的文件。不知道这么做有没有缺点,请大家指点指点

    7 条回复
    sagaxu
        1
    sagaxu  
       4 天前
    git fetch 备份不会比 git bundle 更省空间,如果你观测到有节省,那一定是某个环节误解了
    7164447205
        2
    7164447205  
    OP
       4 天前
    @sagaxu 上游仓库占用空间 200M 。

    在 20 号 和 21 号 分别使用 `git fetch <repo> *:refs/remotes/0920` 和 `git fetch <repo> *:refs/remotes/0921` 下载此仓库,所用空间 200M 。

    在 20 号 和 21 号分别使用 `git bundle create 0920.bundle --all` 和 `git bundle create 0921.bundle --all` 打包此仓库,所用空间近 400M ,请问我哪个步骤出错了?
    7164447205
        3
    7164447205  
    OP
       4 天前
    注:在使用 `git bundle create` 命令之前,会先使用 `git clone` 命令下载当天的仓库,以此保存仓库不同时段的内容
    sagaxu
        4
    sagaxu  
       3 天前
    @7164447205 refs 下面只有“指针”,实际存储在.git/objects 目录,git fetch 能让.git/objects 变小吗?
    7164447205
        5
    7164447205  
    OP
       3 天前
    @sagaxu 我可能没说清楚。我说的「备份仓库」,近似于保存仓库的「快照」,以便还原仓库在不同时间下的全貌。`git bundle` 空间消耗太快,不是指 `git bundle` 打包出的文件比 `git fetch` 的大,而是说每新建一个快照,`git bundle` 就要占用与上游仓库一样大的空间。`git fetch` 则不然,每新建一个快照,都会复用之前保存过的快照,新快照复用新旧快照同有的文件,再下载少许旧快照没有的文件,本地仓库占用的空间由此不会激增
    sagaxu
        6
    sagaxu  
       3 天前
    @7164447205 git bundle 可以做增量备份,定期全量 + 日常增量 是比较常用的备份策略

    https://git-scm.com/docs/git-bundle
    7164447205
        7
    7164447205  
    OP
       3 天前
    @sagaxu 感谢。`git bundle` 确能如此,我之前了解得不够。不过我也没找出 `git fetch` 有何显著缺点,看起来二者皆可
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2696 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 13:25 · PVG 21:25 · LAX 06:25 · JFK 09:25
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.