Las branchs como bien dices son para hacer distintas versiones de un mismo programa y no interferir en el desarrollo de alguien que hace algo totalmente distinto en el programa, normalmente lo que se hace es tener una branch limpia (trunk) que funciona a la perfección (nunca se programa sobre ella) y después otras branchs para desarrollo de nuevas funciones, otra para bugs etc. Hay distintas formas de tener organizado un proyecto. Si no es un proyecto muy grande personalmente con dos branch, una trunk y otra para desarrollo es suficiente.
Para subir tus cambios a GitHub primero tienes que hacer commit en local para luego hacer push y subirlo al servidor, en Git el historial de versiones está en local hasta que haces push al servidor.
Aún así en netbeans con dos clicks lo subes sin tener mucha idea de que es push, pull, commit, branch etc. En la web de Netbeans se explica bien como se utiliza.
Te dejo un tutorial de Git Y GitHub:
http://www.adictosaltrabajo.com/tutoria ... oadProject