Git Client: Unterschied zwischen den Versionen
(Die Seite wurde neu angelegt: „ Zurück zu Ubuntu#G (Client)“) |
(→Stash) |
||
(37 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
== Server == | |||
Siehe: [[Git_Server_(unterschiedliche_Versionen)|Git Server]] | |||
== Installation == | |||
Zurück zu [[Ubuntu#G (Client)]] | === PPA-Repository === | ||
<pre> | |||
sudo add-apt-repository ppa:git-core/ppa | |||
</pre> | |||
=== Paket installieren === | |||
<pre> | |||
sudo apt-get update | |||
sudo apt-get install git | |||
</pre> | |||
== Konfiguration == | |||
=== Benutzer anlegen === | |||
<pre> | |||
git config --global user.name "<first name> <surname>" | |||
git config --global user.email <user>@<domain> | |||
</pre> | |||
Kontrollieren kann man die Eingabe mit den selben Befehlen ohne Parameter. | |||
=== Remote-Repository hinzufügen === | |||
==== Mittels Editor ==== | |||
Die Date ''config'' bearbeiten | |||
<pre> | |||
vi .git/config | |||
</pre> | |||
und folgende Zeilen hinzufügen ('''Achtung: Benutzername und Passwort sind im Klartext'''): | |||
<pre> | |||
[remote "origin"] | |||
url = https://<username>:<password>@<server>/<git project>.git | |||
fetch = +refs/heads/*:refs/remotes/origin/* | |||
[branch "master"] | |||
remote = origin | |||
merge = refs/heads/master | |||
</pre> | |||
==== Per Kommandozeile ==== | |||
Folgenden Befehl ausführen: | |||
<pre> | |||
git remote add origin https://<username>:<password>@<server>/<git project>.git | |||
</pre> | |||
Danach kann das Remote-Repositoy mit folgenden Befehl verifiziert werden: | |||
<pre> | |||
git remote -v | |||
</pre> | |||
== Visualisierung == | |||
=== Branch-Tree === | |||
<pre> | |||
git log --all --graph --decorate --oneline | |||
</pre> | |||
== Graphische Benutzeroberfläche == | |||
Dazu [[RabbitVCS (Linux)|RabbitVCS]] installieren. | |||
== Repository von Server klonen == | |||
=== per SSH-Protokoll === | |||
<pre> | |||
git clone ssh://<user>@<server>/home/git/test.git | |||
</pre> | |||
=== per GIT-Protokoll === | |||
Dazu muss git als Dämon laufen - siehe [[Git_Server_(Linux)#Als_D.C3.A4mon_starten|Git als Dämon starten]] | |||
<pre> | |||
git clone git://git.<domain>/test.git test | |||
</pre> | |||
=== per HTTP-Protokoll === | |||
<pre> | |||
git clone https://git.<domain>/<repository>.git [<local repository location>] | |||
</pre> | |||
bzw. mit Zugangsdaten: | |||
<pre> | |||
git clone https://<user>:<password>@git.<domain>/<repository>.git [<local repository location>] | |||
</pre> | |||
==== 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/] | |||
== Von Bare-Repository starten == | |||
# Klonen: siehe [[Git Client#Repository von Server klonen|Repository von Server klonen]] | |||
# Ins Repository wechseln und Benutzer anlegen: siehe [[Git Client#Benutzer anlegen|Benutzer anlegen]] | |||
# Datei anlgen, danach ''commit'' und ''push'': | |||
<pre> | |||
touch pom.xml | |||
git commit -m "add pom.xml" | |||
git push --set-upstream origin master | |||
</pre> | |||
== Datei löschen == | |||
<pre> | |||
git rm <file> | |||
git commit -m "remove <file>" | |||
git push origin <branch_name> | |||
</pre> | |||
== Lokalen Branch auf Remote-Branch zurücksetzen == | |||
Verwirft die lokalen Änderungen und aktualisiert die lokalen Dateien anhand des Remote-Repositories: | |||
<pre> | |||
git fetch origin | |||
git reset --hard origin/master | |||
</pre> | |||
== Initial commit und push == | |||
Legt automatisch einen Branch <code>master</code> an: | |||
<pre> | |||
git add . | |||
git commit -a -m "<message>" | |||
git push | |||
</pre> | |||
== Stash == | |||
<pre> | |||
git stash save "<message>" | |||
</pre> | |||
<pre> | |||
git stash list | |||
</pre> | |||
<pre> | |||
git stash pop stash@{2} | |||
</pre> | |||
=== Links === | |||
[https://www.atlassian.com/git/tutorials/saving-changes/git-stash https://www.atlassian.com/git/tutorials/saving-changes/git-stash] | |||
== Neuen Branch aus commiteten aber noch nicht gepushten Master erstellen == | |||
<pre> | |||
git log --graph | |||
git checkout -b stock | |||
git log --graph | |||
git checkout master | |||
git reset --hard origin/master | |||
gitk --all | |||
</pre> | |||
== Selbst signiertes Zertifikat hinzufügen == | |||
Das Hinzufügen des selbst signierten Zertifikats wird am Beispiel des <code>jenkins</code>-Benutzers(siehe [[Jenkins_(Ubuntu)#Git|Jenkins]]) beschrieben. | |||
Dazu das Zertifkat herunterladen | |||
<pre> | |||
openssl s_client -connect git.<domain>:443 | |||
</pre> | |||
und das Zertifikat aus der Ausgabe | |||
<pre> | |||
-----BEGIN CERTIFICATE----- | |||
... | |||
-----END CERTIFICATE----- | |||
</pre> | |||
in die Datei hinzufügen (weitere Zertifkate einfach in dieser Datei anhängen): | |||
<pre> | |||
sudo -u jenkins mkdir /var/lib/jenkins/git_certs | |||
sudo -u jenkins vi /var/lib/jenkins/git_certs/cert.pem | |||
</pre> | |||
Nach dem Herunterladen muss das Zertifikat noch zur Git-Konfiguration hinzugefügt werden: | |||
<pre> | |||
sudo -u jenkins git config --global http.sslCAInfo /var/lib/jenkins/git_certs/cert.pem | |||
</pre> | |||
Danach sollte die Konfigurationsdatei | |||
<pre> | |||
sudo vi /var/lib/jenkins/.gitconfig | |||
</pre> | |||
in etwa so aussehen: | |||
<pre> | |||
[http] | |||
sslCAInfo = /var/lib/jenkins/git_certs/cert.pem | |||
</pre> | |||
== Zu Git umziehen == | |||
=== Links === | |||
[https://git-scm.com/book/de/v1/Git-und-andere-Versionsverwaltungen-Zu-Git-umziehen https://git-scm.com/book/de/v1/Git-und-andere-Versionsverwaltungen-Zu-Git-umziehen] | |||
== 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> | |||
oder noch besser - das Zertifkat als vertrauenswürdig hinzufügen: | |||
siehe [[Git_Client#Selbst signiertes Zertifikat hinzufügen|Selbst signiertes Zertifikat hinzufügen]] | |||
=== Git: fatal: Der aktuelle Branch master hat keinen Upstream-Branch === | |||
<pre> | |||
git push --set-upstream origin master | |||
</pre> | |||
== Verwendung == | |||
=== git gui === | |||
[http://rkd.zgib.net/scicomp/git-practical/git-practical.html http://rkd.zgib.net/scicomp/git-practical/git-practical.html] | |||
Zurück zu [[Ubuntu#G (Client)|Ubuntu]] |
Aktuelle Version vom 21. September 2022, 08:17 Uhr
Server
Siehe: Git Server
Installation
PPA-Repository
sudo add-apt-repository ppa:git-core/ppa
Paket installieren
sudo apt-get update sudo apt-get install git
Konfiguration
Benutzer anlegen
git config --global user.name "<first name> <surname>" git config --global user.email <user>@<domain>
Kontrollieren kann man die Eingabe mit den selben Befehlen ohne Parameter.
Remote-Repository hinzufügen
Mittels Editor
Die Date config bearbeiten
vi .git/config
und folgende Zeilen hinzufügen (Achtung: Benutzername und Passwort sind im Klartext):
[remote "origin"] url = https://<username>:<password>@<server>/<git project>.git fetch = +refs/heads/*:refs/remotes/origin/* [branch "master"] remote = origin merge = refs/heads/master
Per Kommandozeile
Folgenden Befehl ausführen:
git remote add origin https://<username>:<password>@<server>/<git project>.git
Danach kann das Remote-Repositoy mit folgenden Befehl verifiziert werden:
git remote -v
Visualisierung
Branch-Tree
git log --all --graph --decorate --oneline
Graphische Benutzeroberfläche
Dazu RabbitVCS installieren.
Repository von Server klonen
per SSH-Protokoll
git clone ssh://<user>@<server>/home/git/test.git
per GIT-Protokoll
Dazu muss git als Dämon laufen - siehe Git als Dämon starten
git clone git://git.<domain>/test.git test
per HTTP-Protokoll
git clone https://git.<domain>/<repository>.git [<local repository location>]
bzw. mit Zugangsdaten:
git clone https://<user>:<password>@git.<domain>/<repository>.git [<local repository location>]
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/
Von Bare-Repository starten
- Klonen: siehe Repository von Server klonen
- Ins Repository wechseln und Benutzer anlegen: siehe Benutzer anlegen
- Datei anlgen, danach commit und push:
touch pom.xml git commit -m "add pom.xml" git push --set-upstream origin master
Datei löschen
git rm <file> git commit -m "remove <file>" git push origin <branch_name>
Lokalen Branch auf Remote-Branch zurücksetzen
Verwirft die lokalen Änderungen und aktualisiert die lokalen Dateien anhand des Remote-Repositories:
git fetch origin git reset --hard origin/master
Initial commit und push
Legt automatisch einen Branch master
an:
git add . git commit -a -m "<message>" git push
Stash
git stash save "<message>"
git stash list
git stash pop stash@{2}
Links
https://www.atlassian.com/git/tutorials/saving-changes/git-stash
Neuen Branch aus commiteten aber noch nicht gepushten Master erstellen
git log --graph git checkout -b stock git log --graph git checkout master git reset --hard origin/master gitk --all
Selbst signiertes Zertifikat hinzufügen
Das Hinzufügen des selbst signierten Zertifikats wird am Beispiel des jenkins
-Benutzers(siehe Jenkins) beschrieben.
Dazu das Zertifkat herunterladen
openssl s_client -connect git.<domain>:443
und das Zertifikat aus der Ausgabe
-----BEGIN CERTIFICATE----- ... -----END CERTIFICATE-----
in die Datei hinzufügen (weitere Zertifkate einfach in dieser Datei anhängen):
sudo -u jenkins mkdir /var/lib/jenkins/git_certs sudo -u jenkins vi /var/lib/jenkins/git_certs/cert.pem
Nach dem Herunterladen muss das Zertifikat noch zur Git-Konfiguration hinzugefügt werden:
sudo -u jenkins git config --global http.sslCAInfo /var/lib/jenkins/git_certs/cert.pem
Danach sollte die Konfigurationsdatei
sudo vi /var/lib/jenkins/.gitconfig
in etwa so aussehen:
[http] sslCAInfo = /var/lib/jenkins/git_certs/cert.pem
Zu Git umziehen
Links
https://git-scm.com/book/de/v1/Git-und-andere-Versionsverwaltungen-Zu-Git-umziehen
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
oder noch besser - das Zertifkat als vertrauenswürdig hinzufügen:
siehe Selbst signiertes Zertifikat hinzufügen
Git: fatal: Der aktuelle Branch master hat keinen Upstream-Branch
git push --set-upstream origin master
Verwendung
git gui
http://rkd.zgib.net/scicomp/git-practical/git-practical.html
Zurück zu Ubuntu