自建 git 服务器能否连接 github - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
MasterCai
V2EX    程序员

自建 git 服务器能否连接 github

  •  
  •   MasterCai 2023-04-25 20:32:23 +08:00 5312 次点击
    这是一个创建于 899 天前的主题,其中的信息可能已经有所发展或是发生改变。

    问题是这样的:在一个局域网内有多台设备,我想在局域网内自建一个 git 服务器(这个用什么都无所谓),用于在局域网内统一同步和管理这些设备上的代码,这个很好实现。

    但是能不能让这个 git 服务器和 github 相连接,可以定期同步代码上去呢?

    目前用 gitlab 搭了一个,本地功能正常,但是无法上传 github ,有没有什么解决方案?(不用 gitlab 也可以)

    图片可能表达的更清晰一点:

    https://imgur.com/a/9PhyGxC

    第 1 条附言    2023-04-26 11:50:47 +08:00
    gitlab 和 gitea 都尝试了一下,目前使用的是 gitea ,主要是因为:
    1. gitlab 内存占用太大,刚装起来就 7g ,不知道是不是因为通过 docker 安装的原因
    2. gitlab ce 版只能 push
    3. gitlab 功能太强,个人使用有点冗余

    现在是用 gitea 先从 github 上镜像一个仓库过来,然后再给它添加一个 push 设置,想实现双向自动同步,试用一段时间看看会不会出现冲突。
    29 条回复    2023-04-26 22:39:54 +08:00
    shunia
        1
    shunia  
       2023-04-25 20:37:04 +08:00   1
    gitea ,可设置自动同步至所有公共代码平台
    0o0O0o0O0o
        2
    0o0O0o0O0o  
       2023-04-25 20:39:50 +08:00 via iPhone
    你可以通过 git remote set-url --add origin <github> 来同时额外 push 到 Github
    IvanLi127
        3
    IvanLi127  
       2023-04-25 20:39:59 +08:00 via Android
    可以,楼上说得对,我现在就是本地 gitea ,定期推代码到 github 上。
    MasterCai
        4
    MasterCai  
    OP
       2023-04-25 20:42:34 +08:00 via iPhone
    @shunia 感谢,这个还真没了解过,去看一下
    @IvanLi127 感谢

    @0o0O0o0O0o 这个我知道,就是想用一个服务器集中管理
    debuggerx
        5
    debuggerx  
       2023-04-25 23:14:53 +08:00 via Android
    gitlab 有设置镜像的选项 所有提交都可以自动镜像到 gh
    Scirocco
        6
    Scirocco  
       2023-04-26 00:18:20 +08:00
    @debuggerx 这个好像是 EE 版本,免费的 CE 版不行
    tinyint00
        7
    tinyint00  
       2023-04-26 08:31:10 +08:00   1
    - 每个仓库建立一个脚本分支
    - 起一个服务用于定时调用
    - 服务定时 `rebase` 你需要同步的分支
    - 服务定时 推送 `rebase` 过来的分支到指定 git 平台

    本质上就是一个定时脚本能够解决。
    或者更极端点,用钩子去触发你的脚本。配置远程平台当成镜像
    skiy
        8
    skiy  
       2023-04-26 08:34:25 +08:00 via iPhone
    gitlab 仓库中的镜像设置可以设置“推”或“拉”
    NouveauNom
        9
    NouveauNom  
       2023-04-26 08:57:00 +08:00
    7L 说的对。用脚本。
    wjx0912
        10
    wjx0912  
       2023-04-26 08:58:56 +08:00   2
    脚本来了

    git clone --bare http:*//....(原始仓库地址)*

    cd project.git ( project 即为你的项目名称)

    git push --mirror http:*//...(目标仓库地址)*
    Sum0l
        11
    Sum0l  
       2023-04-26 09:28:23 +08:00
    楼上的脚本言简意赅,甚为实用
    artnowben
        12
    artnowben  
       2023-04-26 09:32:44 +08:00
    不如直接用 github ,或者 gitlab 吧;简单一点,让生活轻松一点。
    debuggerx
        13
    debuggerx  
       2023-04-26 10:15:09 +08:00
    @Scirocco https://docs.gitlab.com/ee/user/project/repository/mirror/push.html#set-up-a-push-mirror-from-gitlab-to-github

    我是直接用 pve 的 CT 模板装的 gitlab-ce ,这个功能一直好用的
    MasterCai
        14
    MasterCai  
    OP
       2023-04-26 10:32:30 +08:00
    @debuggerx
    @skiy ce 版本只能 push

    @tinyint00
    @wjx0912 这个方法有意思,学到了
    debuggerx
        15
    debuggerx  
       2023-04-26 10:42:15 +08:00
    @MasterCai 所以你需要的是 gitlab 定期同步来自 github 的提交?双向同步?

    如果是主用 gitlab ,github 只做备份用,测的 push mirror 完全就够了啊
    Scirocco
        16
    Scirocco  
       2023-04-26 11:09:42 +08:00
    @debuggerx 记错了记错了,确实是可以 push 的
    pota
        17
    pota  
       2023-04-26 11:37:29 +08:00
    之前是 gitea 配和 drone CI 自动同步的,现在发现 gitea 自带了 方便了很多
    28Sv0ngQfIE7Yloe
        18
    28Sv0ngQfIE7Yloe  
       2023-04-26 11:38:44 +08:00
    如果不想引入其他依赖,还是定时脚本来的简单
    MasterCai
        19
    MasterCai  
    OP
       2023-04-26 11:38:57 +08:00
    @debuggerx 是想实现双向同步,但是好像不行;目前用 gitlab 确实挺好的,但是内存占用太大了
    debuggerx
        20
    debuggerx  
       2023-04-26 11:46:03 +08:00
    @MasterCai gitlab 到 github 就是 mirror push 功能,github 到 gitlab 就用 action ,比如 https://github.com/pixta-dev/repository-mirroring-action

    这样不就双向同步了
    MasterCai
        21
    MasterCai  
    OP
       2023-04-26 11:52:07 +08:00
    @debuggerx 还可以这样,不过主要原因是 gitlab 太大了。。所以目前在用轻量的 gitea
    documentzhangx66
        22
    documentzhangx66  
       2023-04-26 12:47:57 +08:00
    为何不试试 gitlab ee 的 docker ?

    https://docs.gitlab.com/ee/install/docker.html
    documentzhangx66
        23
    documentzhangx66  
       2023-04-26 12:48:43 +08:00
    @MasterCai

    gitlab ee 的 docker 镜像, 不压缩 3G ,zstd 压缩后 1.3G ,大吗?
    BurYiA
        24
    BurYiA  
       2023-04-26 15:13:16 +08:00
    用 ci 功能去做?( github 的 Actions )
    每个项目写个配置,push 的时候自动同步到 github (说白了也是自动执行脚本)

    轻量的 git 可以看看 OneDev ,基本功能都有,可 docker 搭建
    MasterCai
        25
    MasterCai  
    OP
       2023-04-26 15:26:39 +08:00
    @documentzhangx66 gitlab ee 不是收费嘛

    @BurYiA 明白了
    documentzhangx66
        26
    documentzhangx66  
       2023-04-26 16:00:08 +08:00
    @MasterCai

    说是收费,但你先试试再说,反正 docker 版,试错没成本。
    LindsayZhou
        27
    LindsayZhou  
       2023-04-26 21:46:49 +08:00   1
    看起没人说。
    我自己的仓库的话,会自己加服务端的 post-receive 钩子脚本: https://git-scm.com/docs/githooks
    有上传的时候自动触发同步到 github

    我是手工管理 bare 仓库,走 ssh 上传,加 cgit 和 git-daemon 公开分享。
    这种方式非常轻量,写 hooks 也很方便。
    我最近还在 hooks 里,用 systemd-run 和 go-task 简单做了一个通用的 CI 。

    不想自己管理 bare 仓库的话,也有 Gitosis Gitolite 之类的东西,我没用过就不多说了。
    LindsayZhou
        28
    LindsayZhou  
       2023-04-26 21:49:01 +08:00   1
    @LindsayZhou #27
    说起来,前阵子有简单试过这个: https://github.com/charmbracelet/soft-serve
    挺漂亮的,也许可以看看。
    MasterCai
        29
    MasterCai  
    OP
       2023-04-26 22:39:54 +08:00 via iPhone
    现在发现问题了,gitea 好像不能同时设置 push 和 pull ,对于镜像迁移来的仓库无法进行 push 。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1028 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 26ms UTC 18:31 PVG 02:31 LAX 11:31 JFK 14:31
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86