GitLab fork 远程公共仓库
Posted
技术标签:
【中文标题】GitLab fork 远程公共仓库【英文标题】:GitLab fork remote public repo 【发布时间】:2015-03-19 05:56:11 【问题描述】:我的组织有一台专门用于安装 GitLab 的机器。我经常与其他公共项目(Drupal.org 和 Github)合作。除了拥有我们自己的开发和生产分支外,我还想在我们的 GitLab 上拥有一个分支,该分支将跟踪远程 Drupal 或 Github 项目。
希望它位于 GitLab 服务器(机器)上,因此开发人员不负责从公共远程跟踪和更新。
本质上,在“master”上跟踪分叉公共回购,内部分支“devel”和“prod”;开发人员只克隆内部开发分支。然后能够从远程拉到主控,然后根据需要合并到其他内部分支。这可以通过网络界面或钩子来完成吗?或...
按照Create a fork of public git repo for github 的答案,似乎需要一个脚本才能从公共远程拉到本地,然后推送到 GitLab 主机,并将脚本设置为 cron 作业。是吗?
【问题讨论】:
一旦你在你的 gitlab 服务器上 fork 公开 repo,你就有了自己的独立 repo。使用私有分叉作为参考存储库是一个好主意,以便您的团队通过在将更改提交到本地副本后合并更改来进行更新,但是您必须合并(通过不时合并)提交引入的任何进一步更改如果你希望它们出现在你的项目中,那么从你 fork 的那一刻起的公共 repo。检查此以获取有关如何合并两个远程存储库***.com/questions/1767980/… 的具体信息 我有同样的问题,但有一个额外的转折:我要分叉的远程仓库没有 http(s):// 访问权限,而只有 git:// 访问权限。是否可以在 GitLab 中创建一个只有 git:// 访问权限的远程仓库? 【参考方案1】:也许你可以试试 GitLab 镜像功能: https://docs.gitlab.com/ee/workflow/repository_mirroring.html
它支持从远程仓库拉取:
https://docs.gitlab.com/ee/workflow/repository_mirroring.html#pulling-from-a-remote-repository-starter
【讨论】:
【参考方案2】:Fork 只不过是一个添加了远程的新存储库
需要理解三个主要思想:
每个 Git 存储库都是一个独立的存储库 “fork”是存储库的花哨词,远程指向原始存储库 GitLab 只不过是文件系统上真实 Git 存储库的用户界面因此,如果您坚持使用远程分支(git:// 或 http(s)://)在您的服务器上保持某些分支是最新的,您可以将新的远程添加到您的真实git 存储库(通常位于 /home/git/repositories,检查您的 gitlab.yml)并设置一个 cron 以从此类远程提取更改。
但是,如果拉动不是快进并且需要合并,很多事情可能会出错。
解决方案是获取遥控器并重置,但这次您的所有更改都将丢失。
最好全部手工完成
如果可能,更好的解决方案是花点时间手动拉取更改,检查一致性并推送到本地副本。
【讨论】:
以上是关于GitLab fork 远程公共仓库的主要内容,如果未能解决你的问题,请参考以下文章
使用gitlab时候 fork仓库不会实时从主仓库更新解决方案
git学习GitLab中如何批量删除本地以及远程的TAG标签