diff --git a/doc/workflow/README.md b/doc/workflow/README.md index 6e70235f5b8..7e3fc49f704 100644 --- a/doc/workflow/README.md +++ b/doc/workflow/README.md @@ -1,6 +1,7 @@ # Workflow - [Feature branch workflow](workflow.md) +- [Code forking workflow](forking_workflow.md) - [Project Features](project_features.md) - [Authorization for merge requests](authorization_for_merge_requests.md) - [Groups](groups.md) diff --git a/doc/workflow/forking/branch_select.png b/doc/workflow/forking/branch_select.png new file mode 100644 index 00000000000..275f64d113b Binary files /dev/null and b/doc/workflow/forking/branch_select.png differ diff --git a/doc/workflow/forking/fork_button.png b/doc/workflow/forking/fork_button.png new file mode 100644 index 00000000000..def4266476a Binary files /dev/null and b/doc/workflow/forking/fork_button.png differ diff --git a/doc/workflow/forking/groups.png b/doc/workflow/forking/groups.png new file mode 100644 index 00000000000..3ac64b3c8e7 Binary files /dev/null and b/doc/workflow/forking/groups.png differ diff --git a/doc/workflow/forking/merge_request.png b/doc/workflow/forking/merge_request.png new file mode 100644 index 00000000000..2dc00ed08a1 Binary files /dev/null and b/doc/workflow/forking/merge_request.png differ diff --git a/doc/workflow/forking_workflow.md b/doc/workflow/forking_workflow.md new file mode 100644 index 00000000000..32cee3e4f3c --- /dev/null +++ b/doc/workflow/forking_workflow.md @@ -0,0 +1,33 @@ +# Code forking workflow + +Forking a project to your own namespace is useful if you have no write access to the project you want to contribute +to. If you do have write access, we recommend using the **[Code Branching Workflow](https://about.gitlab.com/2014/09/29/gitlab-flow/)**. + +## Creating a fork + +In order to create a fork of a project, all you need to do is click on the fork button located on the top right side +of the screen, close to the project's URL and right next to the stars button. + +![Fork button](/forking/fork_button.png) + +Once you do that you will see a screen where you can choose the namespace, to where you want to add the fork. This page +will contain the groups you have write access to. Choose one of the groups and the project will be added there. + +![Groups view](/forking/groups.png) + +After the forking is done, you can start working on the newly created repository. There you will have full Owner access, +so you can set it up as you please. + +## Merging upstream + +Once you are ready to send your code back to the main project, you need to create a Merge request. Choose your forked +project's main branch as the source and the original project's main branch as the destination and create the merge request. + +![Selecting branches](/forking/branch_select.png) + +You can then assign the Merge Request to someone so they can review your changes. After they have reviewed them, the will +be added to the main project, if maintainer chooses to do so. + +![New merge request](/forking/merge_request.png) + +