现在碰到了一个这样的问题。
有一部分代码是自己 GitHub 上 平常开发的玩具,每天都会更新,更新希望提交到公司的 gitlab 上。
现在的方法是 下载自己的代码 然后复制到公司的 repo 然后重新 commit 到 Gitlab 上
不知道有没有好的方法 自动拉取 github 的代码并更新呢?
尝试了导入 GitHub 的 api key 似乎不管用
1
billchenchina 2018-02-24 00:08:25 +08:00 via Android 2
在 github 侧加一个 webhook,webhook 段做你想做的事
|
2
qfdk OP @billchenchina #1 具体要是 push 到 gitlab 是另一个账号 这里不会冲突么 repo 是内网的地址
|
3
mason961125 2018-02-24 00:17:32 +08:00
py 写个脚本似乎还行吧
|
4
whileFalse 2018-02-24 00:25:27 +08:00 via iPhone
加个 remote
|
5
qfdk OP @whileFalse #4 默认 remote 不就是 github 地址了么?也就是说我还可以➕一个 gitlab 的 remote ?
|
6
huiyifyj 2018-02-24 00:33:16 +08:00 via Android 1
@qfdk #5 对的,添加个 remote,由于 github 是原本的 remote,默认名是 origin,你只需要把 gitlab 远程 remote 名命名为 gitlab,你就可以 git push gitlab(git push 默认推送至默认的远程,也就是 origin)
|
7
qfdk OP @whileFalse #4 谷歌了下是可以这样 但是 gitlab 是在内网 家里无法连接内网
|
8
qfdk OP @huiyifyj #6 但是 gitlab 那边是个内网 不知道有啥好办法不 用个 Jenkins 按照一楼 webhook 然后 bash 进行 push ? 那么问题又来了 两个地方账号不一样 commit 后作者会变了吧?
|
9
huiyifyj 2018-02-24 00:42:07 +08:00 via Android
内网也有办法啊,把自己公司(内网)里自己办公电脑达成一个小型 git 服务器,然后用自己家电脑里把 github 代码 push 到自己公司办公电脑,然后办公电脑 push 到公司内网。(当然,如果办公用的电脑只内网没连外网当我没说)
|
10
msg7086 2018-02-24 00:44:02 +08:00
作者信息是 commit 的一部分。
|
11
huiyifyj 2018-02-24 00:48:07 +08:00 via Android 1
@qfdk #8 如果你提交 GitHub 的 commit 是用 ssh 密钥方式提交,如果你保证自己在提交 GitHub 和公司的 gitlab 里提交的 git 配置是 git config -g …的用户名和邮箱一样。那么他会视为一个相同作者的。
|
12
qfdk OP @huiyifyj #11 GitHub 和 公司两个完全不同的名字 git conf -g 都不一样 有办法么?
|
13
huiyifyj 2018-02-24 01:00:36 +08:00 via Android
@qfdk 如果连当时设置的邮箱都不一样的话,那么估计是视为不同作者了。ssh key 方式提交的话,好像如果公钥明文的显示在最后的邮箱一样就(这我也不太清楚)可能视为同一作者。
|
14
huiyifyj 2018-02-24 01:02:41 +08:00 via Android
@qfdk 不知道你提交 commit 到 github 是什么方式,登录还是 ssh key ?或者 gpg key ?
|
16
huiyifyj 2018-02-24 01:09:27 +08:00 via Android
@qfdk 这样的话,加上用户名邮箱当时 git config 不一样,那估计是视为不同作者咯。🙃
|
17
alvinbone88 2018-02-24 02:12:35 +08:00 1
可以用 gitlab 的 Repository mirroring 功能把项目定时同步过来,接下来改 commit 信息和自动提交可以用 webhook 解决
gitlab 自带的镜像功能需要付费解锁,不过也有免费的方案 https://github.com/samrocketman/gitlab-mirrors |
18
badcode 2018-02-24 08:04:53 +08:00 via iPhone
记得有本地双提交的操作
|
19
badcode 2018-02-24 08:05:31 +08:00 via iPhone
手快,没看好,抱歉
|
20
lzjqsdd 2018-02-24 10:13:14 +08:00 via Android
添加 remote,默认 remote 是 origin,平常我们都是 git push origin master,可以加一个 origin2,push 的时候用 origin2
|
21
billchenchina 2018-02-24 10:44:14 +08:00 via Android
@qfdk 我再明确下需求,是两个不同的 git 仓库吧?如果是的话按 #1 做,webhook 端两个本地仓库,分别有不同的上游,git config 的设定设为仅当前仓库有效(而非全局),即可解决。
|
22
billchenchina 2018-02-24 10:45:09 +08:00 via Android
如果有内网需求的话可以做成 cron 定时任务,每天几次尝试 pull & push
|
23
qfdk OP @billchenchina 对的两个不同 的仓库,一个是公共的 github 一个是内部的内网仓库,两个账号 id 都不一样
|