Just starting out with Git and want to start off on the right foot. I've done some research (eg. Git workflow and rebase vs merge questions, "git pull" or "git merge" between master and development branches) and a recommended workflow seems to be:
-One time only: clone central repo to personal repo
-Create a develop branch
-Do commits on develop branch
-Every so often pull on the master branch (getting changes from central repo) and rebase develop branch on updated master branch if master has indeed been updated
-When done developing a feature on the develop branch merge master and develop branch (after pulling on master once again)
I have a few questions about this:
When a rebase fails due to a merge conflict between the updated master branch and your develop branch (from developers editing the same file), should you abort and switch to a merge instead?
Why merge when a feature is complete rather than rebasing again?
Should I push as well every time I finish developing a feature or fixing a bug?