如何一起使用GitLab和GitHub

源代码管理托管格局

自2008年以来, GitHub一直是托管开放源代码软件项目的最受欢迎的站点。当SourceForge缓慢接受新流行的git源代码控制系统时, GitHub成为领头羊。 GitHub是Bitbucket的竞争对手,它在企业友好的定价模型上取得了成功,并与其他Atlassian工具集成。 但是,GitHub的收费模式是隐私而非人数,这使它成为开源的主流社交平台。

manbetx客户端打不开是过去几年中出现的一个新的竞争对手,引起了社区的极大关注。 与上述替代方案不同,GitLab i gitab-logo-large 根据MIT许可,tself是开源的。 您可以将其本地安装在自己的硬件上,从而使其对于不会在云中托管代码的企业具有吸引力。 GitLab的收入主要来自销售具有安全功能和HA支持的企业版。

除了赠送或出售要在本地安装的软件包外,GitLab还托管诸如GitHub和Bitbucket之类的SaaS产品 。 与竞争对手不同,GitLab.com完全免费提供公共私人回购,用户数量不受限制。 GitLab的模型假定真正的钱在本地软件中,因此他们使用SaaS来销售其本地软件包。

GitHub替代方案?

在过去的几个月中,我对GitLab一直很感兴趣。 除了开源之外,他们还积极参与社区活动并发布新功能。 在Reddit或Hacker News上提及GitLab,首席执行官通常会在一小时内出现并回答任何问题。

我喜欢GitLab的配色方案。 与GitHub或Bitbucket的黑白样式相比,使用深色主题审查请求请求要容易得多。 GitLab有一个集成的CI构建系统,一个Docker容器注册表,并且在途中似乎总是有些新事物。

同时,我最近对GitHub有所警惕。 几年前,他们的创始人因性骚扰而被迫离职。 从那以后,该公司一直在朝着相反的方向努力解决公众形象问题。 他们威胁要关闭含有令人反感的语言的资料库 ,并卷入关于多样性的争论 。 也许最重要的是,他们在努力成为企业供应商时面临内部士气问题。

归根结底,这都不意味着您不能在GitHub上托管个人端项目。 但是,对我而言,探索另一边的草地有多绿就足够了。 我喜欢我所找到的足以呆在那里的东西。

但是,在GitHub上托管开源项目当然具有优势。 许多开发人员将回购作为“投资组合”项目发布,以用于简历。 一些开发人员正在寻找贡献者来共同努力。 GitHub的用户群比其他任何人都要大得多,因此“网络效应”对于实现这两个目标都有很大帮助。

两全其美?

幸运的是,使用GitLab作为主要主机时,可以保留GitHub的网络优势。 您可以轻松地将GitLab用作存储库的主要主机,同时还在GitHub上托管镜像。

在“新项目”页面上,GitLab已经具有导入现有GitHub存储库的选项。 无论您是导入旧的GitHub项目,还是创建一个全新的项目并将其推送到GitLab和GitHub上,您都可以采用两种方法:

选项1:创建单独的命名遥控器

如果您想通过GitLab和GitHub鼓励公众为您的项目做出贡献,那么您将希望为每个项目创建单独的命名远程。 如果GitLab是您的主要主机,那么您将像这样为GitHub添加一个远程服务器:

git remote add github https://github.com/user/repo.git

现在,您可以专门与GitLab或GitHub进行交互。 您知道“起源”名称,即99%的git用户键入时都不会考虑它吗? 好吧,这是指您的主要主机GitLab。 这个新的“ github”远程名称指的是GitHub(您可以随意使用您喜欢的任何其他名称,这仅是出于人类可读性)。

要将更改推送到任一存储库,请使用:

git push origin <branch>   (GitLab)
git push github <branch>   (GitHub)

您将以类似的方式下拉更改:

git pull origin <branch>   (GitLab)
git pull github <branch>   (GitHub)

当您在GitLab主主机上工作时,只需通过在其中推送“ master”分支来定期更新GitHub镜像。 相反,如果社区中的某人向您的GitHub镜像提交了拉取请求,则工作流程将如下所示:

  1. 在GitHub上查看并合并拉取请求
  2. 将“主”拉入本地工作区
  3. 将“ master”推送到GitLab

与单个遥控器相比,这绝对是更多的手动改组。 但是,它为您提供了最大的灵活性,一两个时间后,它会自动变为。

选项2:两个遥控器都超载原点

并非每个项目都寻求公共捐助。 我的GitHub帐户上的许多项目基本上都是“ porfolio”项目,出于恢复目的而存在,我特别不希望请求请求。 如果您的项目是一个开发人员的事务,那么您可以采用更简单的方法来访问GitHub镜像:

git remote set-url –add origin https://github.com/user/repo.git

您不会每天都看到这种技巧,但是在git中,远程名称和远程URL之间的关系不一定是一对一的 ! Git会很高兴地将一个远程名称映射到多个存储库URL。 在这里,我们重载了默认的“原始”名称,以同时引用GitLab和GitHub。 所以正常...

git push origin <branch>
git pull origin <branch>

…将同时推动(或退出)您的主要GitLab主机和GitHub镜像!

对于大型团队情况,此解决方案可能有点太聪明了,但是对于您是唯一开发人员的项目而言,这可能是最方便的方法。

翻译自: https://www.javacodegeeks.com/2016/10/use-gitlab-github-together.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值