

Everyone has different knowledge and experience (in the programming language and/or the project) some people may write faulty/buggy code or simply the kind of code/feature you may not want in your project. If everyone starts programming on top of your repo's master branch, it will cause a lot of confusion.

Another, probably more important, reason is Git was made for collaboration.It's better to start with a prototype, which you would want to design roughly in a different branch and see how it works, before you decide whether to add the feature to the repo's master for others to use. This would be very bad for active users of your project. If you are creating a new feature for your project, there's a reasonable chance that adding it could break your working code.The main reasons for having branches are: Downloadable guide: 7 essential PyPI libraries and how to use them.

