# Typical workflow

## How does a typical workflow look like?

I am going to take one of my repo's as an example on how one would go about doing all the things I described in this book.

- I look at the feature I want to implement
- In my code I begin writing what I want to do in plain English
- I begin with the easiest aspect of it 
    - At each stage of the features development I am commit (Example below)  
        [![Ug5image.png](https://bookstack.hopeless-cloud.xyz/uploads/images/gallery/2024-02/scaled-1680-/ug5image.png)](https://bookstack.hopeless-cloud.xyz/uploads/images/gallery/2024-02/ug5image.png)
- When I am finished with my feature I rebase my with dev 
    - I do this to fix potential issues (merge conflict)
- If everything works as expected I will start a pull request 
    - I personally do a merge commit so I can keep the commit history
- When all features are tested together and everything works one can begin a pull request into main 
    - For this I would recommend squash
- Then I would recommend to make a tag for the current state of development 
    - As well as a release if wanted