Git
From Blue-IT.org Wiki
Contents
HowTo git
HowTo gitolite
[UPDATE] --Apos (talk) 16:12, 4 November 2015 (CET)
Due to the fact I completely do not use the gui interfaces for git any more, I simple recommend using plain commandline git including secured ssh (string password, fail2ban, and / or rsa key usage ;-) On the server simply use a bare git repo. If someone really needs this for production usage or like within a company, you should get a commerial account with [gitlab or any other service.
This article is therefore is not maintained any more.
There are different ways to install git, gitolite, and webacces (e.g. [[#GitlabHQ|gitlabhq])] on Debian oder Ubuntu.
In any case: be sure to read the complete (!) gitolite documentation before you proceed. This article is mainly for Debian squeeze (6.0) server.
Mainly this boils down to:
- should use gitolite anyway
- which username you like to use by default to access the server: git, gitolite, whatever
- which port to use for ssh
- create a public or private repo
- have http access via smarthttp or gitlabhq
- install it manually or the "debian way" (apt-get), however the latter will give you automatic security updates
References
- How-To: Install a private Debian git server using gitolite and GitLabHQ
- Gitolite installation with gitweb and anongit in Gentoo and Debian
GitlabHQ
Fast, secure and stable solution based on Ruby on Rails & Gitolite.
Gitolite
Gitolite is the new framework around git. Easy project and user rights management.
Everything well documented online:
Troubleshooting
User git
After an uninstallation the user git remains on the system.
I had some problems (re)creating a user on my debian system (squeeze). I reverted (uninstalled) a gitolite installation and deleted the user git with
userdel -rf git
After that I had to recreate a new user git with:
useradd -d /home/git -b /home/git -m -s /bin/bash git passwd git
If you not do this, there is not valid shell, the userdir in /home is not created and there is no password!
Gitosis
Is not activly maintained and developed any more. Use gitolite instead.
Troubleshooting
git pull fatal: unable to access 'https://github.com/somewhere/': Failed to connect to github.com port 443: Connection timed out
Disable the firewall.
Edit the local git configuration:
git config --global --edit
Trace the problem:
GIT_TRACE=1 git pull
Possible solutions:
git config --global url."https://".insteadOf git:// git config --global --unset http.proxy export GIT_SSL_NO_VERIFY=1 git config --global http.sslverify false
git config --global http.sslverify true git config --global http.sslCAPath /usr/local/share/ca-certificates/cacert.org
See:
* GIT://: http://stackoverflow.com/questions/21544803/git-bower-errors-exit-code-128-failed-connect * PROXY: http://stackoverflow.com/questions/3512202/github-https-access * SSL/CA: https://github.com/gitlabhq/gitlabhq/issues/4272