GitLab中是否支持对同一个项目执行两次fork操作?
GitLab是否支持对同一个项目执行两次fork操作
首先给明确结论:单个命名空间下不支持对同一个上游项目重复fork。
GitLab的fork校验逻辑是按「目标命名空间+上游项目ID」做唯一性判断的:如果你已经把某个上游项目fork到了自己的个人命名空间下,再次点fork按钮、目标还是个人命名空间时,系统会直接重定向到你已经创建好的现有fork仓库,不会生成新的副本。
如果有特定场景确实需要两个独立的项目副本,可通过以下两种方式实现:
- 选择不同的目标命名空间创建第二个fork
你可以把第二个fork创建到你有对应权限的群组(Group)命名空间下,只要两次fork的目标命名空间不一致,就能正常生成两个完全独立的fork仓库。两个仓库各自的分支、提交记录、合并请求、权限配置互不干扰,都可以正常向上游项目提交合并请求,和普通fork的功能完全一致。 - 手动创建第二个副本(无额外群组可用时适用)
如果你没有可用的群组命名空间,可以先在个人账号下新建一个空白仓库,手动同步上游代码完成副本创建,操作命令如下:
这种方式创建的副本不会带GitLab原生的fork关联标识,但你可以在本地自行配置上游远程地址,代码同步、提交、提合并请求的使用体验和原生fork没有实质差异。# 拉取上游/已有fork的全量代码到本地 git clone --mirror <上游项目/第一个fork的仓库地址> cd <本地仓库目录> # 推送到你新建的空白仓库 git push --mirror <第二个空白仓库的地址>
提示:不要为了建第二个fork直接删除已有的旧fork,删除操作会清空旧fork下的所有分支、合并请求记录、项目配置,且操作不可逆。
内容的提问来源于stack exchange,提问作者uul
相关产品推荐
相关产品推荐

