How to Create Your Own Git Server
Running your own internal git server can have several advantages. Mainly, you are not sharing your code (IP) with external parties. There are many frontends you can strap onto a git server too, like Gitlab, Gitweb, Gerrit, and cgit [1, 2, 3, 4]. We use git/gitolite/gitweb heavily with our internal puppet infrastruture. You can have pre/post commit hooks for things like, syntax checking, email notification, and code deployments.Here is the workflow:          +--------+   +---------+
          | gitweb |   |dashboard|
  staff   +--------+   +---------+  nodes
   +-+          |           |        +-+
   +-+-\        |           |      > +-+
        \ +--+-----+     +------+-/
          |  |git  |     |puppet|
   +-+ -->|  |gito-| +-> |master| -> +-+
   +-+    |  | lite|     |      |    +-+
        / +--+-----+     +------+-
       /   |    |                 \
   +-+-    |    v                  > +-+
   +-+     |     email hook to       +-+
           |       staff if production branch
           v
            syntax hook

I created a screencast about running an internal git server with gitolite @ http://sysadmincasts.com/episodes/11-internal-git-server-wit...[1] http://gitlab.org/[2] https://git.wiki.kernel.org/index.php/Gitweb[3] https://code.google.com/p/gerrit/[4] http://git.zx2c4.com/cgit/