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

代码有没有必要备份到多个远程仓库?比如 github 和 codeup。有必要的话最好怎么备份?

  •  
  •   shendaowu · 1 天前 · 2284 次点击

    备份到远程仓库主要是为了防止代码丢失。多个我是怕一个远程仓库宕机能有其他的能用。有这些必要吗?我会定期备份到光盘和阿里云 WORM OSS 里。还有其他地方。我没找到 VS Code 的设置多个远程仓库的方便的方法,只能用命令行。

    之前在别的地方问的时候有人说用 git remote set-url --add --push origin 仓库地址,谷歌英文搜了一下也基本都是这个命令。但是这个命令好像有点问题,如果最开始是通过 VS Code 的图形界面添加到 github 的私有仓库,那么第一次运行那个命令的时候会替换远程仓库,不是添加,第二次开始才是添加。这个问题不大吧?我没试最开始通过其他方式添加远程仓库会不会也这样。还有我看 remote 命令的 man 文档好像没有明确说这个命令的 --add 参数是用于什么情况的。有点不敢用。毕竟关系到代码的安全,不敢能用就凑合用。

    25 条回复    2025-09-07 10:10:24 +08:00
    echo1937
        1
    echo1937  
       1 天前   ❤️ 6
    没必要,你推送远程仓库以后,代码就有 2 份了,
    n 个人参与开发,代码就有 n+1 份,
    远超绝大部分其他数据的冗余度。
    funcman
        2
    funcman  
       1 天前   ❤️ 2
    多仓库在 git lfs 这块比较麻烦
    像我们搞 gamedev 的,有时间干脆一个项目拆成 git 和 svn
    SingeeKing
        3
    SingeeKing  
       1 天前 via iPhone   ❤️ 2
    我直接用 github ,然后家里跑一个 https://github.com/AkashRajpurohit/git-sync 备份(不但备份我自己的仓库,还备份了所有我 star 了的仓库)
    realpg
        4
    realpg  
    PRO
       1 天前   ❤️ 1
    有没有必要取决于这个项目的总管理会不会做策略, 以及是否给自己做例外, 玩不玩骚操作.
    darkengine
        5
    darkengine  
       1 天前   ❤️ 1
    要不 github 一份,搞个 NAS 用文件的形式再保存一份。
    monkeyk
        6
    monkeyk  
       1 天前   ❤️ 1
    @echo1937 同意这观点。
    unused
        7
    unused  
       1 天前 via Android   ❤️ 1
    直接 remote add ,不要 remote set-url --add
    imjiaoyuan
        8
    imjiaoyuan  
       1 天前   ❤️ 1
    @SingeeKing 好东西
    shendaowu
        9
    shendaowu  
    OP
       1 天前
    @unused #7 那个没法利用 VS Code 的图形界面的 push 吧?另外如果想一次 push 到全部远程仓库可能还要写一个脚本。
    liuliuliuliu
        10
    liuliuliuliu  
    PRO
       1 天前   ❤️ 3
    我是自建一个 gitlab ,gitlab 有个镜像的功能,会自动镜像 github 的仓库
    LnTrx
        11
    LnTrx  
       1 天前   ❤️ 1
    除非现有的“远程”仓库跟自己在同一房间/网络下,否则对于一般项目来说没必要
    ck65
        12
    ck65  
       1 天前 via iPhone   ❤️ 1
    同 #10 我在自己的机器上跑了个 forgejo 手动把 GitHub 上的重要仓库都配上镜像,工作时只对 GitHub 操作,镜像是自动透明运行的。最后 forgejo 的数据和 db 也有定时备份。
    skiy
        13
    skiy  
       1 天前   ❤️ 1
    1 、GitLab 有镜像功能

    2 、 直接修改 .git/config (推时两个都推,拉是只从第一个拉)
    (命令行方式添加:git remote set-url --add origin [email protected]/org/repo.git )

    [remote "origin"]
    url = [email protected]/org/repo.git
    url = [email protected]/org/repo.git
    fetch = +refs/heads/*:refs/remotes/origin/*
    或添加多一个源
    [remote "origin"]
    url = [email protected]/org/repo.git
    fetch = +refs/heads/*:refs/remotes/origin/*
    [remote "gitlab"]
    url = [email protected]/org/repo.git
    推送时用 git push gitlab main
    billzhuang
        14
    billzhuang  
       1 天前 via iPhone   ❤️ 1
    没必要吧
    Oxygen2025
        15
    Oxygen2025  
       1 天前 via Android   ❤️ 1
    压缩包加密,互联网网盘随便传
    int80
        16
    int80  
       1 天前 via Android   ❤️ 1
    自建 gitlab 镜像+1 ,同时每日定时脚本自动同步到 nas 备份
    iomect
        17
    iomect  
       1 天前   ❤️ 1
    以前我也有数据焦虑
    但实际情况是自建 git 硬盘挂了同时电脑报废了的概率都远大于 github 把你仓库丢了的概率
    Belmode
        18
    Belmode  
       1 天前   ❤️ 1
    因为默认的 upstream 源就是 origin ,你每次重置 origin 当然就覆盖了!
    直接设置一个新名字,git remote add new_name https://xxx ,后面 push 到 new_name 就行了
    git push new_name
    Belmode
        19
    Belmode  
       1 天前   ❤️ 2
    @Belmode #18 我自己写项目都是设置两个源,github 作为代码档案,gitee 作为 cicd 的源,因为国内很多云厂商服务器访问 github 都很困难,又不好在生产上用代理,就只好用这种方案了。
    383394544
        20
    383394544  
       1 天前 via iPhone   ❤️ 1
    本地 repo 存在 dropbox ,dropbox 目錄放在 onedrive 裡,這樣就有 dropbox 、onedrive 、遠程倉庫三份備份。你有 nas 還可以從 nas 定期拉取 dropbox 做異地災備
    soulflysimple123
        21
    soulflysimple123  
       1 天前   ❤️ 1
    idea 打开,git - Manage Remotes 弹出窗口 点加号,配置另个 git 地址
    loading
        22
    loading  
       23 小时 5 分钟前 via Android   ❤️ 2
    @SingeeKing 我也是用类似的脚本,定期 nas 自动备份自己的 github 。

    不记得是哪一年,github 把识别出的哪个国家的账号全封了,真吓人。
    FrankAdler
        23
    FrankAdler  
       22 小时 42 分钟前 via Android   ❤️ 1
    我安装了一个 gitea ,设置了自动备份镜像一些仓库
    ETiV
        24
    ETiV  
       21 小时 19 分钟前 via iPhone   ❤️ 1
    建议先把 allow force push 关了再谈论这些…
    loading
        25
    loading  
       12 小时 48 分钟前 via Android
    @loading
    好像是这个事。

    https://www.oschina.net/news_beta/125752

    引用 zorm 作者的一句话:
    开源没有国界,开发者却有自己的祖国.
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2629 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 21ms · UTC 14:59 · PVG 22:59 · LAX 07:59 · JFK 10:59
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.