GIT Branching and Jenkins Pipeline

I want to have branches in GIT like feature,develop ,release and hotfix. I want to deploy code into INT ,VAL and PROD environments using Jenkins whenever a package is is pushed to GIT .Is there any way to achieve this?If yes, what should the branching model be and how wil the pipeline be triggered in jenkins and code deployed into respective environments?