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)
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