Nowadays there are three popular branching models:
Personally, I find GitHub flow a very pragmatic approach as it is simple, yet powerful.
If you do not need to maintain a lot of versions of your software, then you do not need to use the complex branching model proposed by GitFlow.
On the other hand, GitHub flow is simpler to introduce and easier to set up, than Trunk Based Development, which requires good tooling and experience, to ensure that the main branch is always working and potentially releasable.
I have created a very short (6 questions) quiz to help you understanding GitHub flow and some practices that I find very effective: https://goo.gl/forms/VOAAOt10bTUsSoYm2