1) You can choose any branch on which you want to develop - it can be a master or develop. I would recommend trunk / master-branch-based development (in this case, I would suggest deleting the development branch itself).
2) Users will have to configure their version of the wizard to track your repo (in this case, git can act just like any other SCM without Dvcs, i.e. has a central repo where each committer pushes / pulls out). By setting this next / tracking, they can click on "remote".
3) Same as above, they can pull / push away from the remote / central repo.
4) If you follow the continuous delivery / deployment model, you do not need feature and release branches. If not, then I would suggest a branch for each release. Functional branches can be executed, but preferably should be short-lived. In this case, the main [branch] is indeed the main [copy of your code base].
source share