GIT
===============================
********************************************************************************
## Gitosis setup server
********************************************************************************
    git clone https://github.com/tv42/gitosis.git
    cd gitosis
    python setup.py install
    adduser     --system     --shell /bin/sh     --gecos 'Git'     --group     --disabled-password     --home /home/git     git
    apt-get install sudo
    sudo -H -u git gitosis-init < ~/.ssh/authorized_keys
    chmod 755 /home/git/repositories/gitosis-admin.git/hooks/post-update
********************************************************************************
## Gitosis repositories management
********************************************************************************
    git clone ssh://git@{git server ip}:{git server port}/gitosis-admin.git
    cd gitosis-admin
    ls keydir
    vi gitosis.conf
    git commit -a -m "Create repository for  ....."
    git push origin master 
    
********************************************************************************
## Gitosis project initialization
********************************************************************************
    git init
    git remote add origin ssh://git@{git server ip}:{git server port}/{repo name}.git
    git add .
    git commit -a -m "initial"
    git push origin master
********************************************************************************
## Gitolite 
********************************************************************************
Gitolite: Hosting git repositories — Gitolite allows you to setup git hosting on a central server, with very fine-grained access control and many (many!) more powerful features. 
installing Gitolite(Debian):

###step 1:
execute command

    @server: apt-get install gitolite

###step 2:
scp administrator public-key

    @local_pc: scp public_rsa.pub user@your.server.address:/admin.pub

###step 3:
configure gitolite package

    @server: dpkg-reconfigure gitolite
if asked for administrator ssh key type: /admin.pub
else continue on with your own configurations

###step 4 (optional to add users) :
    @local_pc: scp user1_public_rsa.pub user@your.server.address:/user_1.pub
    @local_pc: scp user2_public_rsa.pub user@your.server.address:/user_2.pub
    @server: gl-setup /user_1.pub
    @server: gl-setup /user_2.pub

###step 5:
clone gitolite-admin repo

    @local_pc: git clone ssh://{gitolite username}@your.server.address:/gitolite-admin
    
********************************************************************************
## GitLab
********************************************************************************
### gitlab.rb
    external_url 'http://git.zanjanhost.ir/'
    gitlab_rails['gitlab_email_from'] = 'USERNAME@gmail.com'
    gitlab_rails['gitlab_email_reply_to'] = 'USERNAME@gmail.com'
    gitlab_rails['gitlab_shell_ssh_port'] = 1394
    gitlab_rails['smtp_enable'] = true
    gitlab_rails['smtp_address'] = "smtp.gmail.com"
    gitlab_rails['smtp_port'] = 587 
    gitlab_rails['smtp_user_name'] = "USERNAME@gmail.com"
    gitlab_rails['smtp_password'] = "PASSWORD"
    gitlab_rails['smtp_domain'] = "smtp.gmail.com"
    gitlab_rails['smtp_authentication'] = :login
    gitlab_rails['smtp_enable_starttls_auto'] = true
    gitlab_rails['smtp_tls'] = false
    postgresql['max_connections'] = 20
### gitlab management
    gitlab-ctl reconfigure
    gitlab-ctl restart
    gitlab-ctl status
    gitlab-ctl stop
    gitlab-ctl start
    gitlab-ctl status
    gitlab-ctl tail

    
_BY: Farid Ahmadian_  
_TAG: git, gitosis, gitolite, gitlab_  
_DATE: 2015-04-27 19:36:53_