2015-03-03 20:31:54 +00:00
|
|
|
# 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
|
2015-03-04 05:44:53 +00:00
|
|
|
to. If you do have write access or can request it we recommend working together in the same repository since it is simpler.
|
|
|
|
See our **[GitLab Flow](https://about.gitlab.com/2014/09/29/gitlab-flow/)** article for more information about using
|
|
|
|
branches to work together.
|
2015-03-03 20:31:54 +00:00
|
|
|
|
|
|
|
## 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.
|
|
|
|
|
2015-03-03 20:38:45 +00:00
|
|
|
![Fork button](forking/fork_button.png)
|
2015-03-03 20:31:54 +00:00
|
|
|
|
2015-04-08 00:27:04 +00:00
|
|
|
Once you do that you'll be presented with a screen where you can choose the namespace to fork to. Only namespaces
|
|
|
|
(groups and your own namespace) where you have write access to, will be shown. Click on the namespace to create your
|
|
|
|
fork there.
|
2015-03-03 20:31:54 +00:00
|
|
|
|
2015-03-03 20:38:45 +00:00
|
|
|
![Groups view](forking/groups.png)
|
2015-03-03 20:31:54 +00:00
|
|
|
|
2015-04-08 00:27:04 +00:00
|
|
|
After the forking is done, you can start working on the newly created repository. There you will have full
|
|
|
|
[Owner](../permissions/permissions.md) access, so you can set it up as you please.
|
2015-03-03 20:31:54 +00:00
|
|
|
|
|
|
|
## Merging upstream
|
|
|
|
|
2015-04-08 00:27:04 +00:00
|
|
|
Once you are ready to send your code back to the main project, you need to create a merge request. Choose your forked
|
2015-03-03 20:31:54 +00:00
|
|
|
project's main branch as the source and the original project's main branch as the destination and create the merge request.
|
|
|
|
|
2015-03-03 20:38:45 +00:00
|
|
|
![Selecting branches](forking/branch_select.png)
|
2015-03-03 20:31:54 +00:00
|
|
|
|
2015-04-08 00:27:04 +00:00
|
|
|
You can then assign the merge request to someone to have them review your changes. Upon pressing the 'Accept Merge Request'
|
|
|
|
button, your changes will be added to the repository and branch you're merging into.
|
2015-03-03 20:31:54 +00:00
|
|
|
|
2015-03-03 20:38:45 +00:00
|
|
|
![New merge request](forking/merge_request.png)
|
2015-03-03 20:31:54 +00:00
|
|
|
|
|
|
|
|