Bare git server

This is a naïve implementation. Probably will be improved in the future. I really don't know how it is implemented GitHub backend and I don't pretend to achieve such a level of complexity. I only need a simple structure for a server where I host some git repos.

Structure

It keeps everything clean specially when collaborative coding lead to fork repos: basically, it let coexist cnorris/repofoo fork of jsmith/repofoo.

How to

In your Unix server gitbox.example.org, create user jsmith. Keep in mind that a user is just the second level of the tree. It can be a real person, an organization, or whatever groups a set of repos. For example I use to create a user for everyone of my customers, but, it could make sense also to create a user for every project.

In Unix context, a user will own a home folder: usually /home/jsmith. This folder will contain user’s git repos.

Create master git repo

On gitbox.example.org, as jsmith user, create a repofoo git repo.

Create repo folder under the home and cd into it.

mkdir ~/repofoo.git &&cd$_

The trick is to create a bare git repo, in order to be able to push to it.

Port local repo on server

A common scenario is init a repo locally, and then put it on git server lately.
First create master git repo, repobar for instance.
I assume you already created repobar locally with git init.
Then go into your local repobar folder and add the remote origin and set upstream master.

This is a step by step set of instructions on how to use github to contribute to your favourite creative coding project (that is vvvv of course) so you can help, improve it, and maybe add features you need for your own projects.