问题是这样的:在一个局域网内有多台设备,我想在局域网内自建一个 git 服务器(这个用什么都无所谓),用于在局域网内统一同步和管理这些设备上的代码,这个很好实现。
但是能不能让这个 git 服务器和 github 相连接,可以定期同步代码上去呢?
目前用 gitlab 搭了一个,本地功能正常,但是无法上传 github ,有没有什么解决方案?(不用 gitlab 也可以)
图片可能表达的更清晰一点:
1
shunia 2023-04-25 20:37:04 +08:00 1
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 1
- 每个仓库建立一个脚本分支
- 起一个服务用于定时调用 - 服务定时 `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 2
脚本来了
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 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 之类的东西,我没用过就不多说了。 |
28
LindsayZhou 2023-04-26 21:49:01 +08:00 1
|
29
MasterCai OP 现在发现问题了,gitea 好像不能同时设置 push 和 pull ,对于镜像迁移来的仓库无法进行 push 。
|