!!! info ""
    :construction: Section under Construction :construction:

## Initialize

- Create a new project in GitLab and take note of its URL

### Protecting Master Branch

On the GitLab page of your project go to *Settings/Repository* in the *Protected Branches* section.
Select the **Master** branch and set **allow to merge** to ***Master*** and **allow to push** to **No one**
This will prevent anyone to push on the master branch, the only way to add code to the branch will be merge requests.

### Setting Development Branch

- Retrieve the project on your computer, open a command line and execute.

```
git clone https://forge.grandlyon.com/web-et-numerique/llle.git
git clone https://forge.grandlyon.com/solidarite/monparcourssocial/mps-usager.git
```

- Create the development branch

```
git checkout -b dev
```

- Init your project and then type any time you want to commit changes:

```
git add .
git commit -m "Commit changes"
git push origin dev
```

## Start Developing

For any other development you should create a branch from the development branch.

First make sure to be on the ***dev*** branch, type:

```
git branch
```

> to see your current branch

### Conventional Commits

A `feature` branch name should follow this structure:

- *feat/<title_of_the_user_story\>*

You can create the branch by typing:

```
git checkout -b feat/<title_of_the_user_story>
```

Each fix branch should be named as the following *fix-\<title_of_the_fix\>*.

**Breaking Change**
Appends a `!` before the title of the commit to notify that a breaking change has happened. Give a solid description of the changes as well.

**add tag**

```
git tag -a 1.0.0 -m "complementary message"
```

### Gitflow Scheme

![Gitflow](/img/gitflow.png)