Git: Unterschied zwischen den Versionen
Keine Bearbeitungszusammenfassung |
Keine Bearbeitungszusammenfassung |
||
Zeile 1: | Zeile 1: | ||
'''[https://git-scm.com/ Git]''' ist ein dezentrales [https://wiki.ubuntuusers.de/Versionsverwaltung/ Versionsverwaltungssystem] | '''[https://git-scm.com/ Git]''' ist ein dezentrales [https://wiki.ubuntuusers.de/Versionsverwaltung/ Versionsverwaltungssystem] | ||
= Beschreibung = | == Beschreibung == | ||
* Git wurde 2005 von [https://de.wikipedia.org/wiki/Linus_Torvalds Linus Torvalds] als Ersatz für das damals proprietäre Programm [https://www.bitkeeper.com/ BitKeeper] geschrieben und wird aktiv weiterentwickelt. | |||
* Git unterscheidet sich von einem traditionellen Programm wie [https://wiki.ubuntuusers.de/Archiv/Subversion/ Subversion]. | |||
Git unterscheidet sich von einem traditionellen Programm wie [https://wiki.ubuntuusers.de/Archiv/Subversion/ Subversion]. | |||
;Wichtige Eigenschaften | ;Wichtige Eigenschaften | ||
Zeile 13: | Zeile 12: | ||
* Umfangreiche Arbeiten ohne Internetzugang möglich | * Umfangreiche Arbeiten ohne Internetzugang möglich | ||
= Installation = | == Installation == | ||
# apt install git | # apt install git | ||
= | == Anwendungen == | ||
= | |||
=== Quellcode herunterladen === | === Quellcode herunterladen === | ||
Will man nur den Quellcode eines Projekts aus dem Git-Repository herunterladen, verwendet man den Befehl: | Will man nur den Quellcode eines Projekts aus dem Git-Repository herunterladen, verwendet man den Befehl: | ||
Zeile 145: | Zeile 137: | ||
Oder mit [https://wiki.ubuntuusers.de/apturl/ apturl] installieren, Link: [apt://git-svn apt://git-svn] | Oder mit [https://wiki.ubuntuusers.de/apturl/ apturl] installieren, Link: [apt://git-svn apt://git-svn] | ||
= Sicherheit = | = Sicherheit = | ||
= Dokumentation = | == Syntax == | ||
== RFC == | === Optionen === | ||
== Man-Pages == | === Parameter === | ||
== Info-Pages == | === Umgebungsvariablen === | ||
== Projekt-Homepage == | === Exit-Status === | ||
== Konfiguration == | |||
=== Dateien === | |||
== Sicherheit == | |||
== Dokumentation == | |||
=== RFC === | |||
=== Man-Pages === | |||
=== Info-Pages === | |||
== Siehe auch == | |||
== Links == | |||
=== Projekt-Homepage === | |||
[https://git-scm.com/ Projektseite] | |||
* [https://www.kernel.org/pub/software/scm/git/docs/user-manual.html User Manual] - offizielle Dokumentation | |||
* [http://gitref.org/ Git-Referenz] - für den schnellen, aber dennoch umfangreichen Einstieg | |||
* [https://ndpsoftware.com/git-cheatsheet.html Cheatsheet] - Kurzübersicht Git-Befehle | |||
= | === Weblinks === | ||
== | |||
# https://en.wikipedia.org/wiki/Git_(software) | # https://en.wikipedia.org/wiki/Git_(software) | ||
# https://de.wikipedia.org/wiki/Git | # https://de.wikipedia.org/wiki/Git | ||
# | # [https://wiki.ubuntuusers.de/Versionsverwaltung/ Versionsverwaltung] Übersichtsartikel | ||
* [http://gitbu.ch/ Das deutsche Git-Buch] - umfassende Materialsammlung zum Erlernen und Lehren von Git | * [http://gitbu.ch/ Das deutsche Git-Buch] - umfassende Materialsammlung zum Erlernen und Lehren von Git | ||
* [https://git-scm.com/book/de Pro Git] - mehrsprachige Dokumentation von Scott Chacon, auch als Buch erhältlich | * [https://git-scm.com/book/de Pro Git] - mehrsprachige Dokumentation von Scott Chacon, auch als Buch erhältlich | ||
Zeile 175: | Zeile 171: | ||
* [https://gitlab.org/ GitLab] - dto. | * [https://gitlab.org/ GitLab] - dto. | ||
* [https://www.youtube.com/watch?v=4XpnKHJAok8 Linus Torvalds über Git] 14.5.2007 | * [https://www.youtube.com/watch?v=4XpnKHJAok8 Linus Torvalds über Git] 14.5.2007 | ||
== Einzelnachweise == | === Einzelnachweise === | ||
<references /> | <references /> | ||
== Testfragen == | |||
= Testfragen = | |||
<div class="toccolours mw-collapsible mw-collapsed"> | <div class="toccolours mw-collapsible mw-collapsed"> | ||
''Testfrage 1'' | ''Testfrage 1'' | ||
Zeile 200: | Zeile 195: | ||
</div> | </div> | ||
[[Kategorie:Entwurf]] | |||
[[Kategorie:Programmierung]] | [[Kategorie:Programmierung]] | ||
[[Kategorie:Linux:Software]] | [[Kategorie:Linux:Software]] |
Version vom 1. August 2022, 13:33 Uhr
Git ist ein dezentrales Versionsverwaltungssystem
Beschreibung
- Git wurde 2005 von Linus Torvalds als Ersatz für das damals proprietäre Programm BitKeeper geschrieben und wird aktiv weiterentwickelt.
- Git unterscheidet sich von einem traditionellen Programm wie Subversion.
- Wichtige Eigenschaften
- Einfache und effiziente Arbeitsweise nach dem KISS-Prinzip
- Kein zentraler Server benötigt (wird aber dennoch häufig eingesetzt)
- Unterstützung vieler Übertragungsprotokolle (HTTP, HTTPS, FTP, SSH, rsync)
- Absicherung durch GnuPG-Signierung
- Umfangreiche Arbeiten ohne Internetzugang möglich
Installation
# apt install git
Anwendungen
Quellcode herunterladen
Will man nur den Quellcode eines Projekts aus dem Git-Repository herunterladen, verwendet man den Befehl:
git clone git://ADRESSE
Um beispielsweise den aktuellen Quellcode des Linux-Kernels in das Verzeichnis linux herunterzuladen, braucht man diesen Befehl:
git clone git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git linux
Falls man hinter einer Firewall sitzt und der Zugriff über den Port 9418 gesperrt ist, kann man versuchen, über den fast immer offenen Port 443 auf das Repository zuzugreifen. Der entsprechende Befehl sieht folgendermaßen aus:
git clone https://ADRESSE
Entwicklung mit Git
Einrichtung
Vor Arbeitsbeginn sollte man den eigenen Namen und eine E-Mail-Adresse eintragen:
git config --global user.name NAME git config --global user.email EMAIL@ADRESSE.de
Diese Daten erscheinen in der Beschreibung einer Veränderung und dienen der Identifizierung des Autors einer Revision, falls mehrere Entwickler an einem Projekt arbeiten. Enthalten die config-Werte Leerzeichen (z.B. Vorname und Nachname), so müssen sie in Anführungszeichen gesetzt werden, z.B.:
git config --global user.name "VORNAME NACHNAME"
Überprüfen kann man die Parameter ohne Angabe des Wertes, z.B.:
git config --global user.name
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"
Grundlagen
Zuerst erstellt man einen Ordner für das Projekt und wechselt in diesen Ordner. Dort führt man nun den Befehl
git init
aus. Der Befehl erstellt das Git-Repository mit den nötigen Angaben. Nun erstellt man den Quellcode des Programms und fügt die Datei(en) mit dem Befehl
git add DATEI
zum Git-Repository hinzu. Hat man nun wieder etwas am Quellcode verändert, erstellt man mit
git commit -m "ÄNDERUNGSBESCHREIBUNG"
eine Revision.
Stellt man nach einem Commit fest, dass eine Datei vergessen wurde, kann diese mit den folgenden beiden Befehlen dem vorangegangenen Commit noch hinzugefügt werden:
git add VERGESSENE_DATEI commit --amend
Wobei dieses Vorgehen nicht zu empfehlen ist, wenn das Repository bereits veröffentlicht wurde (siehe folgender Absatz zum Befehl push).
Will man den Quellcode nun auf einen Server laden, führt man diesen Befehl aus:
git push ADRESSE BRANCHNAME
Hat nun ein anderer Entwickler den Quellcode verändert, kann man die lokale Version mit dem Befehl
git pull
aktualisieren. Wenn man nun etwas am Quellcode verändert oder einen Patch eingespielt hat, dies aber rückgängig machen möchte, benutzt man
git checkout -f
oder alternativ
git reset --hard
Diese Befehle setzen alle unbestätigten lokalen Veränderungen zurück. Mit dem nächsten Befehl kann man auflisten, welche Dateien versioniert werden:
git ls-files
Auslassen mit .gitignore
Ein Beispiel, das für jedes Projekt angepasst werden kann:
# generic files to ignore # backup files (*~) and vim swap file (.swp), MacOS dir file (.DS_Store) *~ *.lock *.DS_Store .*.swp *.out # IDE files to ignore (Netbeans, Eclipse) nbproject/private/ .classpath .project .settings # ignore generated .class files *.class # except this file !.gitignore
Branches
Hat man mehrere Entwicklungszweige zu pflegen (bspw. stable und testing), kann man sich der Branches bedienen. Um bestehende Branches anzuzeigen, gibt man diesen Befehl ein:
git branch
Zum Anzeigen von remote Branches gibt man ein:
git branch -r
Um nun einen neuen Branch zu erstellen, muss nur der folgende Befehl eingegeben werden:
git branch BRANCHNAME
Um in eine anderen Branch zu wechseln, verwendet man diesen Befehl:
git checkout BRANCHNAME
Das Löschen von local und remote Branches geschieht folgendermaßen:
local:
git branch -d THE_LOCAL_BRANCH
remote:
git push origin :THE_REMOTE_BRANCH
Patch erstellen
Ein git-Commit kann recht einfach, z.B. mit
git format-patch cfe0a421d7d334499fb5de4ab2c4e2178a4630f3 --stdout > PATCHDATEI.patch
in einen Patch (namens PATCHDATEI.patch) verwandelt werden. Der Commit-Hash (z.B. cfe0a421d7d334499fb5de4ab2c4e2178a4630f3) ist entsprechend anzupassen. Mit folgendem Befehl kann der Patch dann angewandt werden:
patch -p1 < PATCHDATEI.patch
Grafische Oberflächen
Es gibt eine Reihe von grafischen Oberflächen für Git. Diese sind im Übersichtsartikel Grafische Oberflächen für Git aufgeführt.
Problembehebung
Git und Subversion
Sollte man gezwungen sein, mit einem Subversion-Server zu arbeiten, kann man zur lokalen Verwaltung trotzdem Git einsetzen. Man muss nur das entsprechende Paket installieren:* git-svn
Befehl zum Installieren der Pakete:
sudo apt-get install git-svn
Oder mit apturl installieren, Link: [apt://git-svn apt://git-svn]
Sicherheit
Syntax
Optionen
Parameter
Umgebungsvariablen
Exit-Status
Konfiguration
Dateien
Sicherheit
Dokumentation
RFC
Man-Pages
Info-Pages
Siehe auch
Links
Projekt-Homepage
- User Manual - offizielle Dokumentation
- Git-Referenz - für den schnellen, aber dennoch umfangreichen Einstieg
- Cheatsheet - Kurzübersicht Git-Befehle
Weblinks
- https://en.wikipedia.org/wiki/Git_(software)
- https://de.wikipedia.org/wiki/Git
- Versionsverwaltung Übersichtsartikel
- Das deutsche Git-Buch - umfassende Materialsammlung zum Erlernen und Lehren von Git
- Pro Git - mehrsprachige Dokumentation von Scott Chacon, auch als Buch erhältlich
- Git für Einsteiger - Teil 1 - Blogbeitrag, 10/2014
- Git für Einsteiger - Teil 2 - Blogbeitrag, 11/2014
- Git für Einsteiger - Teil 3 - Blogbeitrag, 01/2015
- Gitlab Workshop CLT 2019
- Git Howto - freiesMagazin 08/2008
- GitHub - Kostenlose Git-Repositorien für Open-Source-Programme
- GitLab - dto.
- Linus Torvalds über Git 14.5.2007
Einzelnachweise
Testfragen
Testfrage 1
Testfrage 2
Testfrage 3
Testfrage 4
Testfrage 5