Git-flow is a shell script that provides a branching strategy for Git repository management. It defines branches for features, releases, hotfixes and support. Features are developed on feature branches off the develop branch. Releases are prepared on release branches off develop and merged to master. Hotfixes are critical fixes directly made on the master branch.