|
|
# 允许Fork项目协助提交合并请求[](#允许Fork项目协助提交合并请求 "Permalink")
|
|
|
# 允许 Fork 项目协助提交合并请求[](#允许Fork项目协助提交合并请求 "Permalink")
|
|
|
|
|
|
在 GitLab 10.6 中[引入](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/17395) .
|
|
|
当用户在 Fork 的项目上新建合并请求时,将为他们提供允许上游成员在源分支上与其进行协作的选项,这使得上游项目的成员可以在合并之前进行小规模修复或 Rebase 分支,从而减少了接受外部贡献的来回过程。
|
|
|
|
|
|
当用户从派生打开合并请求时,将为他们提供允许上游成员在源分支上与其进行协作的选项. 这使上游项目的成员可以在合并之前进行小规模修复或重新分支,从而减少了接受外部贡献的来回过程.
|
|
|
此功能适用于可公开访问的项目与 Fork 项目之间的合并请求。
|
|
|
|
|
|
此功能可用于可公开访问的分支项目之间的合并请求.
|
|
|
当启用后,对项目目标分支具有合并访问权限的成员将被授予对合并请求的源分支的写权限。
|
|
|
|
|
|
为合并请求启用后,对项目目标分支具有合并访问权限的成员将被授予对合并请求的源分支的写权限.
|
|
|
## 启用允许上游项目成员修改提交[](#enabling-commit-edits-from-upstream-members "Permalink")
|
|
|
|
|
|
## Enabling commit edits from upstream members[](#enabling-commit-edits-from-upstream-members "Permalink")
|
|
|
只有具有对源项目的推送访问权限的用户才能启用该功能,并且只有在合并请求打开时才能持续使用。启用后,上游成员也将能够重试合并请求的管道和作业:
|
|
|
|
|
|
只有具有对源项目的推送访问权限的用户才能启用该功能,并且只有在合并请求打开时才能持续使用. 启用后,上游成员也将能够重试合并请求的管道和作业:
|
|
|
1. 在创建或编辑合并请求时启用允许协助
|
|
|
|
|
|
1. 在创建或编辑合并请求时启用贡献.
|
|
|
[![Enable contribution](/../../docs/img/allow_collaboration.png)](img/allow_collaboration.png)
|
|
|
|
|
|
[![Enable contribution](img/3794ce06aeeb9528fa1a66915cc69072.png)](img/allow_collaboration.png)
|
|
|
2. 创建合并请求后,您将看到允许可以合并到目标分支的成员的提交
|
|
|
|
|
|
2. 创建合并请求后,您将看到允许可以合并到目标分支的成员的提交.
|
|
|
[![Check that contribution is enabled](img/allow_collaboration_after_save.png)](img/allow_collaboration_after_save.png)
|
|
|
|
|
|
[![Check that contribution is enabled](img/381cb6fd4ceed7b2a8b3642926cb8cf2.png)](img/allow_collaboration_after_save.png)
|
|
|
## 上游项目成员推送代码至 Fork 项目[](#pushing-to-the-fork-as-the-upstream-member "Permalink")
|
|
|
|
|
|
## Pushing to the fork as the upstream member[](#pushing-to-the-fork-as-the-upstream-member "Permalink")
|
|
|
如果合并请求的创建者启用了允许上游成员进行协助贡献,则上游项目成员可以直接推送到 Fork 项目代码仓库的分支中。
|
|
|
|
|
|
如果合并请求的创建者启用了上游成员的贡献,则可以直接推送到派生存储库的分支.
|
|
|
假设现在有如下所示的 Fork 项目及合并请求分支:
|
|
|
|
|
|
假如说:
|
|
|
|
|
|
* 分叉的项目 URL 为`git@gitlab.com:thedude/awesome-project.git` .
|
|
|
* 合并请求的分支是`update-docs` .
|
|
|
* Fork 的项目 URL 为`git@codechina.csdn.net:codechina/awesome-project.git`
|
|
|
* 合并请求的分支是`update-docs`
|
|
|
|
|
|
流程如下所示:
|
|
|
|
|
|
1. 首先,您需要获取合并请求已引入的更改. 单击" **签出"分支**按钮,其中包含可以运行的一些预填充命令.
|
|
|
|
|
|
[![Check out branch button](img/e9dbc908a405f57008dbb80d1b8a9a70.png)](img/checkout_button.png)
|
|
|
|
|
|
1. 首先,您需要获取合并请求引入的更改,单击**签出分支**按钮,其中包含可以运行的一些预填充命令
|
|
|
2. 使用复制按钮复制第一个命令并将其粘贴到您的终端中:
|
|
|
|
|
|
```markdown
|
|
|
git fetch git@codechina.csdn.net:codechina update-docs
|
|
|
git checkout -b codechina-awesome-project-update-docs FETCH_HEAD
|
|
|
```
|
|
|
git fetch git@gitlab.com:thedude/awesome-project.git update-docs
|
|
|
git checkout -b thedude-awesome-project-update-docs FETCH_HEAD
|
|
|
```
|
|
|
|
|
|
这将获取派生项目的分支,然后基于所获取的分支创建本地分支.
|
|
|
以上命令将获取 Fork 项目的分支,然后基于所获取的分支创建本地分支
|
|
|
|
|
|
3. Make any changes you want and commit.
|
|
|
3. 在分支中完成你所需要进行的修改
|
|
|
4. 推送到分叉的项目:
|
|
|
|
|
|
```
|
|
|
git push git@gitlab.com:thedude/awesome-project.git thedude-awesome-project-update-docs:update-docs
|
|
|
```markdown
|
|
|
git push git@codechina.csdn.net:codechina/awesome-project.git codechina-awesome-project-update-docs:update-docs
|
|
|
```
|
|
|
|
|
|
注意冒号( `:`两个分支之间). 上面的命令会将本地分支`thedude-awesome-project-update-docs` `git@gitlab.com:thedude/awesome-project.git`存储库的`update-docs`分支. |
|
|
\ No newline at end of file |
|
|
注意两个分支之间需要用冒号( `:`)。上面的命令会将本地分支`codechina-awesome-project-update-docs`推送到`git@codechina.csdn.net:codechina/awesome-project.git`代码仓库的`update-docs`分支。 |
|
|
\ No newline at end of file |