title: Setting up a local Git repository without using github for multiple users
body: <p>I am trying to set up a local Git repository on a secure server (which is why I can't use github at all). I am a git newbie. It is for multiple projects, and each project directory will contain the .git file. I have come up with a model which seems to work for a single user, but I don't think this will translate well for multiple users. In each project I have created a 'development' branch which is where code development and testing will take place. When we are happy with this we will merge to the master branch which is where the routine programs will be run from. The workflow is:</p>
  
  <p>On branch development:</p>
  
  <p>Make changes to text.txt</p>
  
  <pre><code>git add python.py
  git commit -m "made change to python.py"
  </code></pre>
  
  <p>Now we run python.py from the development branch to test if these changes worked. If not we can either restore or carry on developing. When we are happy:</p>
  
  <pre><code>git checkout master
  git merge development
  </code></pre>
  
  <p>Now we can run our newly developed program from our master branch safe in the knowledge that it works. </p>
  
  <p>However, this is fine when I am working by myself but this model needs to accommodate for more users developing the code. This is where I am confused. Is this a good start off system or would cloning our repository onto a local machine be a better way when multiple people are using it?</p>
  
  <p>If two people are working on the same thing at the same time on the development branch then when adding to the staging area/committing, some changes will be lost. </p>
  
  <p>Therefore should we clone to a local machine, make our changes, do our tests then push back to the local repository for a user to review these changes? The issue I see with this is we are using windows machines... and we ssh into a linux ubuntu server which is where we do our work. Therefore our windows machines do not have the necessary files (and in some cases SQL databases) on them in order to test our work. Also if we put the files on, the directories in the scripts will need to be changed every single time to accommodate for this? </p>
  
  <p>Has anyone got any experience with doing a similar thing, or can point me in the right direction? Thanks</p>