问题是这样的:在一个局域网内有多台设备,我想在局域网内自建一个 git 服务器(这个用什么都无所谓),用于在局域网内统一同步和管理这些设备上的代码,这个很好实现。
但是能不能让这个 git 服务器和 github 相连接,可以定期同步代码上去呢?
目前用 gitlab 搭了一个,本地功能正常,但是无法上传 github ,有没有什么解决方案?(不用 gitlab 也可以)
图片可能表达的更清晰一点:
1 shunia 2023-04-25 20:37:04 +08:00 ![]() gitea ,可设置自动同步至所有公共代码平台 |
2 0o0O0o0O0o 2023-04-25 20:39:50 +08:00 via iPhone 你可以通过 git remote set-url --add origin <github> 来同时额外 push 到 Github |
![]() | 3 IvanLi127 2023-04-25 20:39:59 +08:00 via Android 可以,楼上说得对,我现在就是本地 gitea ,定期推代码到 github 上。 |
![]() | 4 MasterCai OP |
![]() | 5 debuggerx 2023-04-25 23:14:53 +08:00 via Android gitlab 有设置镜像的选项 所有提交都可以自动镜像到 gh |
7 tinyint00 2023-04-26 08:31:10 +08:00 ![]() - 每个仓库建立一个脚本分支 - 起一个服务用于定时调用 - 服务定时 `rebase` 你需要同步的分支 - 服务定时 推送 `rebase` 过来的分支到指定 git 平台 本质上就是一个定时脚本能够解决。 或者更极端点,用钩子去触发你的脚本。配置远程平台当成镜像 |
![]() | 8 skiy 2023-04-26 08:34:25 +08:00 via iPhone gitlab 仓库中的镜像设置可以设置“推”或“拉” |
![]() | 9 NouveauNom 2023-04-26 08:57:00 +08:00 7L 说的对。用脚本。 |
![]() | 10 wjx0912 2023-04-26 08:58:56 +08:00 ![]() 脚本来了 git clone --bare http:*//....(原始仓库地址)* cd project.git ( project 即为你的项目名称) git push --mirror http:*//...(目标仓库地址)* |
11 Sum0l 2023-04-26 09:28:23 +08:00 楼上的脚本言简意赅,甚为实用 |
12 artnowben 2023-04-26 09:32:44 +08:00 不如直接用 github ,或者 gitlab 吧;简单一点,让生活轻松一点。 |
![]() | 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 ,这个功能一直好用的 |
![]() | 14 MasterCai OP |
![]() | 15 debuggerx 2023-04-26 10:42:15 +08:00 |
![]() | 17 pota 2023-04-26 11:37:29 +08:00 之前是 gitea 配和 drone CI 自动同步的,现在发现 gitea 自带了 方便了很多 |
18 28Sv0ngQfIE7Yloe 2023-04-26 11:38:44 +08:00 如果不想引入其他依赖,还是定时脚本来的简单 |
![]() | 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 这样不就双向同步了 |
![]() | 22 documentzhangx66 2023-04-26 12:47:57 +08:00 |
![]() | 23 documentzhangx66 2023-04-26 12:48:43 +08:00 |
![]() | 24 BurYiA 2023-04-26 15:13:16 +08:00 用 ci 功能去做?( github 的 Actions ) 每个项目写个配置,push 的时候自动同步到 github (说白了也是自动执行脚本) 轻量的 git 可以看看 OneDev ,基本功能都有,可 docker 搭建 |
![]() | 25 MasterCai OP |
![]() | 26 documentzhangx66 2023-04-26 16:00:08 +08:00 |
![]() | 27 LindsayZhou 2023-04-26 21:46:49 +08:00 ![]() 看起没人说。 我自己的仓库的话,会自己加服务端的 post-receive 钩子脚本: https://git-scm.com/docs/githooks 有上传的时候自动触发同步到 github 我是手工管理 bare 仓库,走 ssh 上传,加 cgit 和 git-daemon 公开分享。 这种方式非常轻量,写 hooks 也很方便。 我最近还在 hooks 里,用 systemd-run 和 go-task 简单做了一个通用的 CI 。 不想自己管理 bare 仓库的话,也有 Gitosis Gitolite 之类的东西,我没用过就不多说了。 |
![]() | 28 LindsayZhou 2023-04-26 21:49:01 +08:00 ![]() |
![]() | 29 MasterCai OP 现在发现问题了,gitea 好像不能同时设置 push 和 pull ,对于镜像迁移来的仓库无法进行 push 。 |