Getting Started with Strapi Workflows Using Git!

Could you share your thoughts about how the whole workflow should look like?
I’m using Gitlab CI for publishing after commits are applied, and I want to understand how to correctly update strapi configs, plugins, dependencies, new content-types, and so on.