如何优雅的把 GitHub 上的代码 push 到 gitlab 上?

2018-02-23 23:54:33 +08:00
 qfdk

现在碰到了一个这样的问题。

有一部分代码是自己 GitHub 上 平常开发的玩具,每天都会更新,更新希望提交到公司的 gitlab 上。

现在的方法是 下载自己的代码 然后复制到公司的 repo 然后重新 commit 到 Gitlab 上

不知道有没有好的方法 自动拉取 github 的代码并更新呢?

尝试了导入 GitHub 的 api key 似乎不管用

4865 次点击
所在节点    问与答
23 条回复
billchenchina
2018-02-24 00:08:25 +08:00
在 github 侧加一个 webhook,webhook 段做你想做的事
qfdk
2018-02-24 00:16:12 +08:00
@billchenchina #1 具体要是 push 到 gitlab 是另一个账号 这里不会冲突么 repo 是内网的地址
mason961125
2018-02-24 00:17:32 +08:00
py 写个脚本似乎还行吧
whileFalse
2018-02-24 00:25:27 +08:00
加个 remote
qfdk
2018-02-24 00:28:42 +08:00
@whileFalse #4 默认 remote 不就是 github 地址了么?也就是说我还可以➕一个 gitlab 的 remote ?
huiyifyj
2018-02-24 00:33:16 +08:00
@qfdk #5 对的,添加个 remote,由于 github 是原本的 remote,默认名是 origin,你只需要把 gitlab 远程 remote 名命名为 gitlab,你就可以 git push gitlab(git push 默认推送至默认的远程,也就是 origin)
qfdk
2018-02-24 00:35:55 +08:00
@whileFalse #4 谷歌了下是可以这样 但是 gitlab 是在内网 家里无法连接内网
qfdk
2018-02-24 00:39:25 +08:00
@huiyifyj #6 但是 gitlab 那边是个内网 不知道有啥好办法不 用个 Jenkins 按照一楼 webhook 然后 bash 进行 push ? 那么问题又来了 两个地方账号不一样 commit 后作者会变了吧?
huiyifyj
2018-02-24 00:42:07 +08:00
内网也有办法啊,把自己公司(内网)里自己办公电脑达成一个小型 git 服务器,然后用自己家电脑里把 github 代码 push 到自己公司办公电脑,然后办公电脑 push 到公司内网。(当然,如果办公用的电脑只内网没连外网当我没说)
msg7086
2018-02-24 00:44:02 +08:00
作者信息是 commit 的一部分。
huiyifyj
2018-02-24 00:48:07 +08:00
@qfdk #8 如果你提交 GitHub 的 commit 是用 ssh 密钥方式提交,如果你保证自己在提交 GitHub 和公司的 gitlab 里提交的 git 配置是 git config -g …的用户名和邮箱一样。那么他会视为一个相同作者的。
qfdk
2018-02-24 00:51:27 +08:00
@huiyifyj #11 GitHub 和 公司两个完全不同的名字 git conf -g 都不一样 有办法么?
huiyifyj
2018-02-24 01:00:36 +08:00
@qfdk 如果连当时设置的邮箱都不一样的话,那么估计是视为不同作者了。ssh key 方式提交的话,好像如果公钥明文的显示在最后的邮箱一样就(这我也不太清楚)可能视为同一作者。
huiyifyj
2018-02-24 01:02:41 +08:00
@qfdk 不知道你提交 commit 到 github 是什么方式,登录还是 ssh key ?或者 gpg key ?
qfdk
2018-02-24 01:07:00 +08:00
@huiyifyj #14 github 是 ssh key 另个 gitlab 不是
huiyifyj
2018-02-24 01:09:27 +08:00
@qfdk 这样的话,加上用户名邮箱当时 git config 不一样,那估计是视为不同作者咯。🙃
alvinbone88
2018-02-24 02:12:35 +08:00
可以用 gitlab 的 Repository mirroring 功能把项目定时同步过来,接下来改 commit 信息和自动提交可以用 webhook 解决

gitlab 自带的镜像功能需要付费解锁,不过也有免费的方案
https://github.com/samrocketman/gitlab-mirrors
badcode
2018-02-24 08:04:53 +08:00
记得有本地双提交的操作
badcode
2018-02-24 08:05:31 +08:00
手快,没看好,抱歉
lzjqsdd
2018-02-24 10:13:14 +08:00
添加 remote,默认 remote 是 origin,平常我们都是 git push origin master,可以加一个 origin2,push 的时候用 origin2

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/432068

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX