====== Git server on Debian ====== Well, we'll focus on how to install git and gitweb on the Debian distribution. gitweb is a git web interface written in Perl, and can be used as a CGI script or as mod_Perl, and it will allow us browsing a git repository. Let's start. Getting git and gitweb packages from the Debian repository with aptitude: $ sudo aptitude install git-core gitweb Create some useful directories: /data/repos/git (the git repository), /var/www/git contains the gitweb.cgi: $ sudo mkdir /var/www/git $ [ -d "/var/cache/git" ] || sudo mkdir /var/cache/git In our example the directory /var/www is Apache's DocumentRoot; there is a /etc/apache2/conf.d/gitweb. Make a git configuration in the Apache configuration directory: $ sudo cat vim /etc/apache2/conf.d/git Allow from all AllowOverride all Order allow,deny Options ExecCGI SetHandler cgi-script DirectoryIndex gitweb.cgi SetEnv GITWEB_CONFIG /etc/gitweb.conf Move gitweb.cgi, logo and css files into /var/www/git: $ sudo mv /usr/share/gitweb/* /var/www/git $ sudo mv /usr/lib/cgi-bin/gitweb.cgi /var/www/git Make some changes in /etc/gitweb.conf: $ sudo vim /etc/gitweb.conf $projectroot = '/data/repos/git/'; $git_temp = "/tmp"; #$home_link = $my_uri || "/"; $home_text = "indextext.html"; $projects_list = $projectroot; $stylesheet = "/git/gitweb.css"; $logo = "/git/git-logo.png"; $favicon = "/git/git-favicon.png"; Reload the git config into Apache: $ sudo /etc/init.d/apache2 reload First, initialize git in our project by creating a repository and setting name and email: $ cd /var/cache/git/ $ mkdir project.git $ cd project.git $ git init $ echo "Short project's description" > .git/description $ git config --global user.name "Your Name" $ git config --global user.email "you@example.com" $ git commit -a Marking a repository as exported is done by using the file git-daemon-export-ok. $ cd /var/cache/git/project.git $ touch .git/git-daemon-export-ok Git has a mini-server for git repositories. It is small and cute, and suitable for sharing repositories. Starting git daemon with our repository as base path, base-path should not end in a slash. $ git daemon --base-path=/var/cache/git --detach --syslog --export-all Now the git daemon is running on port 9418 on your computer, we can start to use it with the URL git:///location. You can do a copy to your development environment: $ git clone git://server/project.git project If our clone succeeded, we should now have a local directory called project.