We've been using git for a couple of months now where only one developer is working per project. This has been great and I get the concept of topic branches, release branches the merging and push & pull to a remote server.
However, when we have more than one developer working on the same repository, I get very confused. I have error messages indicating that I really don't know what I'm doing...
So what do I try to achieve; The main developer is working on a repository or System A. He created a 'Version 2.0_Alpha' branch on which he is working locally and push regularly to our git server. The master is the current released version. I want to help him out and do a specific feature. I created a local branch 'Feature_15' based on the remote branch 'Version 2.0_Alpha'. I do my work, I commit to the local repository and my colleague keeps working on his local repository, but pushes also to the server.
When it is time for me to push my changes to the server, I was hoping that I could just push my 'Feature_15'. Then my colleague can keep working on his code, and when he is ready checkout what have done, if all OK, go back to his branch 'Version 2.0_Alpha' and merge in my 'Feature_15'.
But this does not work as git is determined to have my first pull the latest 'Version 2.0_Alpha', and then I get lost in my knowledge and understanding.
Can somebody let me know if I'm on the right thinking path but just missing some steps, or am I going about this the wrong way.
We're using the limited functionality git-gui, but when needed happy to use gitExt or the Git-batch.