Git flow is a Git workflow and branching model for managing larger feature branches, release branches and hotfixes. It uses master for production releases, develop for ongoing development and feature branches for new features. Release and hotfix branches are used to package completed features for production releases from develop and fix issues in production respectively.