Git Server (Linux): Unterschied zwischen den Versionen
(→Links) |
|||
(114 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
{{note|Noch in Bearbeitung}} | {{note|Noch in Bearbeitung}} | ||
[[Datei:GitPushForceYoda.jpg|323px]] [[Datei:Git-push-force.png]] | |||
Zeile 7: | Zeile 10: | ||
<pre> | <pre> | ||
ppa:git-core/ppa | sudo add-apt-repository ppa:git-core/ppa | ||
</pre> | |||
=== Paket installieren === | |||
<pre> | |||
sudo apt-get update | |||
sudo apt-get install git | |||
</pre> | |||
=== Apache === | |||
Packete für '''htdigest''' und '''fcgid''' installieren: | |||
<pre> | |||
sudo apt-get install apache2-utils libapache2-mod-fcgid | |||
</pre> | |||
<pre> | |||
sudo a2enmod env alias fcgid auth_digest | |||
sudo service apache2 restart | |||
</pre> | |||
== Konfiguration == | |||
=== Ports === | |||
{| class="wikitable" | |||
! Anwendung | |||
! Protokoll | |||
! Port | |||
|- | |||
| ssh:// | |||
| style="text-align:center;" | TCP | |||
| style="text-align:right;" | 22 | |||
|- | |||
| git:// | |||
| style="text-align:center;" | TCP | |||
| style="text-align:right;" | 9418 | |||
|- | |||
| http:// | |||
| style="text-align:center;" | TCP | |||
| style="text-align:right;" | 80 | |||
|- | |||
| https:// | |||
| style="text-align:center;" | TCP | |||
| style="text-align:right;" | 443 | |||
|} | |||
==== Links ==== | |||
[https://git-scm.com/book/de/v1/Git-auf-dem-Server-Die-Protokolle https://git-scm.com/book/de/v1/Git-auf-dem-Server-Die-Protokolle] | |||
=== Projektverzeichnis === | |||
Grundverzeichnis erstellen: | |||
<pre> | |||
sudo mkdir /home/git | |||
sudo chown www-data:www-data /home/git/ | |||
sudo chmod 2775 /home/git/ | |||
</pre> | |||
Projektverzeichnis erstellen: | |||
<pre> | |||
mkdir /home/git/test/ | |||
cd /home/git/test/ | |||
git --bare init | |||
</pre> | |||
Der Befehl <code>git --bare init</code> erstellt ein leeres Repository ohne Arbeitsverzeichnis. Darin kann man keine Dateien direkt sehen - benötigt den Befehl <code>git --show</code>. | |||
=== Allgemein === | |||
Um die Lesbarkeit zu erhöhen, sollte man die Ausgaben mit den folgenden Befehlen einfärben: | |||
<pre> | |||
git config --global color.ui "auto" | |||
</pre> | |||
Für Computer mit mehreren Prozessorkernen empfiehlt sich diese Option: | |||
<pre> | |||
git config --global pack.threads "0" | |||
</pre> | |||
=== Als Dämon starten === | |||
==== Upstart ==== | |||
<pre> | |||
sudo vi /etc/init/git_daemon.conf | |||
</pre> | |||
<pre> | |||
description "Git daemon" | |||
start on runlevel [2345] | |||
stop on runlevel [!2345] | |||
respawn | |||
respawn limit 10 5 | |||
umask 002 | |||
exec /usr/bin/git daemon --user=www-data --group=www-data --reuseaddr --verbose --export-all --base-path=/home/git | |||
</pre> | |||
<pre> | |||
sudo initctl start git_daemon | |||
</pre> | |||
<pre> | |||
sudo initctl stop git_daemon | |||
</pre> | |||
==== Links ==== | |||
[https://git-scm.com/book/de/v1/Git-auf-dem-Server-Git-Daemon https://git-scm.com/book/de/v1/Git-auf-dem-Server-Git-Daemon] | |||
=== Webinterface === | |||
[[GitWeb (Ubuntu)|GitWeb]] | |||
[[GitLab (Ubuntu)|GitLab]] | |||
== Repository anlegen == | |||
<pre> | |||
cd /home/git | |||
mkdir project.git | |||
cd project.git | |||
git --bare init | |||
</pre> | |||
== Client Seite == | |||
Verwendung von Git wurde nach [[Git Client]] verschoben. | |||
=== Lokales Repository auf Server kopieren === | |||
<pre> | |||
git clone --bare .git test.git | |||
</pre> | |||
<pre> | |||
scp -r test.git <user>@<domain>:/home/git/ | |||
</pre> | |||
==== Links ==== | |||
[http://www.codesolutions.de/git-repository-lokal-erstellen-und-dann-auf-den-server-uploaden/ http://www.codesolutions.de/git-repository-lokal-erstellen-und-dann-auf-den-server-uploaden/] | |||
== Repository von Server klonen == | |||
Verwendung siehe [[Git Client]] | |||
=== Links === | |||
[https://git-scm.com/docs/git-http-backend https://git-scm.com/docs/git-http-backend] | |||
[https://kupschke.net/2012/02/23/git-server-mit-apache-und-dem-git-smart-http-protokoll/ https://kupschke.net/2012/02/23/git-server-mit-apache-und-dem-git-smart-http-protokoll/] | |||
[http://www.tikalk.com/devops/setup-git-gitweb-git-http-backend-smart-http-ubuntu-1204/ http://www.tikalk.com/devops/setup-git-gitweb-git-http-backend-smart-http-ubuntu-1204/] | |||
== Umziehen == | |||
[[Von Subversion zu Git umziehen]] | |||
== IDE Integration == | |||
[[Git in IntelliJ]] | |||
== Probleme == | |||
=== fatal: remote error: access denied or repository not exported: /test.git === | |||
Entweder eine leere Datei <code>git-daemon-export-ok</code> im Repository anlegen oder den Dämonen mit der Option <code>--export-all</code> Option starten. | |||
=== fatal: unable to access 'https://git.<domain>/test.git/': server certificate verification failed. CAfile: /etc/ssl/certs/ca-certificates.crt CRLfile: none === | |||
SSL-Verifizierung mittels folgendem Befehl deaktivieren: | |||
<pre> | |||
git config --global http.sslverify false | |||
</pre> | </pre> | ||
Zeile 17: | Zeile 199: | ||
[http://t3n.de/news/git-eigener-git-server-544264/ http://t3n.de/news/git-eigener-git-server-544264/] | [http://t3n.de/news/git-eigener-git-server-544264/ http://t3n.de/news/git-eigener-git-server-544264/] | ||
[https://git-scm.com/book/de/v1/Git-auf-dem-Server-Git-auf-einen-Server-bekommen https://git-scm.com/book/de/v1/Git-auf-dem-Server-Git-auf-einen-Server-bekommen] | |||
Zurück zu [[ | Zurück zu [[Git Server (unterschiedliche Versionen)|Git Server]] |
Aktuelle Version vom 27. Juli 2020, 22:36 Uhr
Noch in Bearbeitung
Installation
PPA-Repository
sudo add-apt-repository ppa:git-core/ppa
Paket installieren
sudo apt-get update sudo apt-get install git
Apache
Packete für htdigest und fcgid installieren:
sudo apt-get install apache2-utils libapache2-mod-fcgid
sudo a2enmod env alias fcgid auth_digest sudo service apache2 restart
Konfiguration
Ports
Anwendung | Protokoll | Port |
---|---|---|
ssh:// | TCP | 22 |
git:// | TCP | 9418 |
http:// | TCP | 80 |
https:// | TCP | 443 |
Links
https://git-scm.com/book/de/v1/Git-auf-dem-Server-Die-Protokolle
Projektverzeichnis
Grundverzeichnis erstellen:
sudo mkdir /home/git sudo chown www-data:www-data /home/git/ sudo chmod 2775 /home/git/
Projektverzeichnis erstellen:
mkdir /home/git/test/ cd /home/git/test/ git --bare init
Der Befehl git --bare init
erstellt ein leeres Repository ohne Arbeitsverzeichnis. Darin kann man keine Dateien direkt sehen - benötigt den Befehl git --show
.
Allgemein
Um die Lesbarkeit zu erhöhen, sollte man die Ausgaben mit den folgenden Befehlen einfärben:
git config --global color.ui "auto"
Für Computer mit mehreren Prozessorkernen empfiehlt sich diese Option:
git config --global pack.threads "0"
Als Dämon starten
Upstart
sudo vi /etc/init/git_daemon.conf
description "Git daemon" start on runlevel [2345] stop on runlevel [!2345] respawn respawn limit 10 5 umask 002 exec /usr/bin/git daemon --user=www-data --group=www-data --reuseaddr --verbose --export-all --base-path=/home/git
sudo initctl start git_daemon
sudo initctl stop git_daemon
Links
https://git-scm.com/book/de/v1/Git-auf-dem-Server-Git-Daemon
Webinterface
Repository anlegen
cd /home/git mkdir project.git cd project.git git --bare init
Client Seite
Verwendung von Git wurde nach Git Client verschoben.
Lokales Repository auf Server kopieren
git clone --bare .git test.git
scp -r test.git <user>@<domain>:/home/git/
Links
http://www.codesolutions.de/git-repository-lokal-erstellen-und-dann-auf-den-server-uploaden/
Repository von Server klonen
Verwendung siehe Git Client
Links
https://git-scm.com/docs/git-http-backend
https://kupschke.net/2012/02/23/git-server-mit-apache-und-dem-git-smart-http-protokoll/
http://www.tikalk.com/devops/setup-git-gitweb-git-http-backend-smart-http-ubuntu-1204/
Umziehen
Von Subversion zu Git umziehen
IDE Integration
Probleme
fatal: remote error: access denied or repository not exported: /test.git
Entweder eine leere Datei git-daemon-export-ok
im Repository anlegen oder den Dämonen mit der Option --export-all
Option starten.
fatal: unable to access 'https://git.<domain>/test.git/': server certificate verification failed. CAfile: /etc/ssl/certs/ca-certificates.crt CRLfile: none
SSL-Verifizierung mittels folgendem Befehl deaktivieren:
git config --global http.sslverify false
Links
https://wiki.ubuntuusers.de/Git/
https://www.git-tower.com/learn/
http://t3n.de/news/git-eigener-git-server-544264/
https://git-scm.com/book/de/v1/Git-auf-dem-Server-Git-auf-einen-Server-bekommen
Zurück zu Git Server