I am currently working at a company that has a small(2) development team for our ASP.NET WebForms project. This was something we picked up from a previous team. The current team is made up of recent university graduates with little to no experience in source control. We have all read the gitflow page and understand it, we just don't understand how the process should flow once a release is ready and in the master branch.
The previous team, however, did not supply source, so we have been left to rewrite it from the ground up. We introduced source control to the company, and have slowly been trying to clean up our development process. We still don't have any clear development patterns or standards in place due to our employer, but that is a discussion for another time.
To clarify, we are comfortable with source control, but we have no idea how to deploy in a clean, easy to handle way. There is not a single developer in this team that has more than 2 years development in a company.
We work in feature branches and use release branches to push, well, releases, but our deployment pipeline is non existent. We currently pull our master branch directly on to our production server.
Our employer likes to make hotfixes(not the GitFlow kind) at will, without telling the developers. We hit a situation today where the we needed to put live a hotfix, but the employer had made some changes in the way of that, so we had to spend an hour working around those. If we want to apply a hotfix on the production server, we need to checkout our develop branch first, which also means disrupting our clients more than we would like.
The question I have is this, how should we be handling our source control? Should we really be pulling the master branch directly on to our production server?
We are all inexperienced in source control, never using it to supply a product before. I am currently the lead developer, and I am trying to get some order in place before we bring on more developers. Any and all advice is welcome.