einführung in git - heipei · git ist genauso hilfreich wenn man nur allein arbeitet i andere...
TRANSCRIPT
![Page 1: Einführung in git - heipei · git ist genauso hilfreich wenn man nur allein arbeitet I Andere Gründe? RWTH Aachen University Rechen- und Kommunikationszentrum Einführung in git](https://reader033.vdocuments.pub/reader033/viewer/2022060406/5f0f56ba7e708231d443aae9/html5/thumbnails/1.jpg)
Einführung in git
Johannes Gilger & Matthias LederhoferRechen- und Kommunikationszentrum der RWTH Aachen
Network Operation Center
14. Juli 2010
RWTH Aachen UniversityRechen- und Kommunikationszentrum Einführung in git
![Page 2: Einführung in git - heipei · git ist genauso hilfreich wenn man nur allein arbeitet I Andere Gründe? RWTH Aachen University Rechen- und Kommunikationszentrum Einführung in git](https://reader033.vdocuments.pub/reader033/viewer/2022060406/5f0f56ba7e708231d443aae9/html5/thumbnails/2.jpg)
Übersicht
I Begriffe in der VersionsverwaltungI Unterschiede zentrale und dezentrale VCSI Warum man git benutzen sollteI Wie git funktioniertI Wie wir git benutzenI Weiterführende Literatur und Software
RWTH Aachen UniversityRechen- und Kommunikationszentrum Einführung in git
![Page 3: Einführung in git - heipei · git ist genauso hilfreich wenn man nur allein arbeitet I Andere Gründe? RWTH Aachen University Rechen- und Kommunikationszentrum Einführung in git](https://reader033.vdocuments.pub/reader033/viewer/2022060406/5f0f56ba7e708231d443aae9/html5/thumbnails/3.jpg)
Begriffe
I DVCS, VCS, SCM - (Verteilte) VersionsverwaltungI Repository - Enthält die Geschichte (alle Versionen) eines
ProjektsI Commit, Revision - Identifiziert eine Version
SVN: 423, git: b8bba41...I Branch - Ein Entwicklungszweig in der GeschichteI Worktree - Das aktuelle Arbeitsverzeichnis (Dateien)I Checkout - Die angelegten Dateien die einem bestimmten
Stand entsprechen
RWTH Aachen UniversityRechen- und Kommunikationszentrum Einführung in git
![Page 4: Einführung in git - heipei · git ist genauso hilfreich wenn man nur allein arbeitet I Andere Gründe? RWTH Aachen University Rechen- und Kommunikationszentrum Einführung in git](https://reader033.vdocuments.pub/reader033/viewer/2022060406/5f0f56ba7e708231d443aae9/html5/thumbnails/4.jpg)
Zentrale Versionskontrolle ...
RWTH Aachen UniversityRechen- und Kommunikationszentrum Einführung in git
![Page 5: Einführung in git - heipei · git ist genauso hilfreich wenn man nur allein arbeitet I Andere Gründe? RWTH Aachen University Rechen- und Kommunikationszentrum Einführung in git](https://reader033.vdocuments.pub/reader033/viewer/2022060406/5f0f56ba7e708231d443aae9/html5/thumbnails/5.jpg)
Dezentrale Versionskontrolle
RWTH Aachen UniversityRechen- und Kommunikationszentrum Einführung in git
![Page 6: Einführung in git - heipei · git ist genauso hilfreich wenn man nur allein arbeitet I Andere Gründe? RWTH Aachen University Rechen- und Kommunikationszentrum Einführung in git](https://reader033.vdocuments.pub/reader033/viewer/2022060406/5f0f56ba7e708231d443aae9/html5/thumbnails/6.jpg)
Typischer zentralisierter Workflow
RWTH Aachen UniversityRechen- und Kommunikationszentrum Einführung in git
![Page 7: Einführung in git - heipei · git ist genauso hilfreich wenn man nur allein arbeitet I Andere Gründe? RWTH Aachen University Rechen- und Kommunikationszentrum Einführung in git](https://reader033.vdocuments.pub/reader033/viewer/2022060406/5f0f56ba7e708231d443aae9/html5/thumbnails/7.jpg)
Typischer verteiler Workflow
Festlegung auf Master-Repository ist nur Konvention.
RWTH Aachen UniversityRechen- und Kommunikationszentrum Einführung in git
![Page 8: Einführung in git - heipei · git ist genauso hilfreich wenn man nur allein arbeitet I Andere Gründe? RWTH Aachen University Rechen- und Kommunikationszentrum Einführung in git](https://reader033.vdocuments.pub/reader033/viewer/2022060406/5f0f56ba7e708231d443aae9/html5/thumbnails/8.jpg)
Kurze Geschichte von git
I 2005: Linus Torvalds schreibt git für die Entwicklung desLinux-KernelsAnfangs sehr low-level und kompliziert
I 2005-2010: Linus gibt die Entwicklung ab, schnellwachsende und aktive Community
I 2010: git 1.7.1.1 ist aktuell, viele Open-Source Projektesind inzwischen auf git umgestiegenAndroid, Debian, Eclipse, Fedora, GIMP, Gnome,openSUSE, Perl, Ruby on Rails, Samba, VLC, Wine, X.org
RWTH Aachen UniversityRechen- und Kommunikationszentrum Einführung in git
![Page 9: Einführung in git - heipei · git ist genauso hilfreich wenn man nur allein arbeitet I Andere Gründe? RWTH Aachen University Rechen- und Kommunikationszentrum Einführung in git](https://reader033.vdocuments.pub/reader033/viewer/2022060406/5f0f56ba7e708231d443aae9/html5/thumbnails/9.jpg)
Motivation”Warum die ganze Arbeit?”
RWTH Aachen UniversityRechen- und Kommunikationszentrum Einführung in git
![Page 10: Einführung in git - heipei · git ist genauso hilfreich wenn man nur allein arbeitet I Andere Gründe? RWTH Aachen University Rechen- und Kommunikationszentrum Einführung in git](https://reader033.vdocuments.pub/reader033/viewer/2022060406/5f0f56ba7e708231d443aae9/html5/thumbnails/10.jpg)
Warum sollte man git benutzen?
I Viele neue Konzepte, anfangs evtl. schwer zu verstehenUngefähr einen Monat Einarbeitungszeit, zahlt sich jedochschnell aus
I ”SVN funktioniert doch / Viele Leute benutzen noch SVN”git-svn hilft bei der Umstellung. Die meistenOSS-Projekte wechseln auf ein DVCS
I ”Ich hab nicht vor Open-Source Software zu schreiben”git ist genauso hilfreich wenn man nur allein arbeitet
I Andere Gründe?
RWTH Aachen UniversityRechen- und Kommunikationszentrum Einführung in git
![Page 11: Einführung in git - heipei · git ist genauso hilfreich wenn man nur allein arbeitet I Andere Gründe? RWTH Aachen University Rechen- und Kommunikationszentrum Einführung in git](https://reader033.vdocuments.pub/reader033/viewer/2022060406/5f0f56ba7e708231d443aae9/html5/thumbnails/11.jpg)
Vorteile von git gegenüber SVN
I Geschwindigkeitgit ist sehr schnell und speicherzeffizient, alle Operationensind lokal (offline)
I Kein Setupgit init und sofort loslegen, keine Erstellung vonzentralen Projekten nötig
I Einfache RechtevergabeNormale Dateisystemberechtigungen, Zugriff lokal oderz.B. über SSH
I Schnelle parallele EntwicklungKeine Festlegung auf Regeln oder Rollen
Siehe auch http://www.whygitisbetterthanx.com ;)
RWTH Aachen UniversityRechen- und Kommunikationszentrum Einführung in git
![Page 12: Einführung in git - heipei · git ist genauso hilfreich wenn man nur allein arbeitet I Andere Gründe? RWTH Aachen University Rechen- und Kommunikationszentrum Einführung in git](https://reader033.vdocuments.pub/reader033/viewer/2022060406/5f0f56ba7e708231d443aae9/html5/thumbnails/12.jpg)
”Nachteile” von git
I Kein Checkout von SubdirsKein wirklicher Nachteil, bedeutet dass man Projekte eherin einzelne Repositories aufteilt
I Keine feine Rechtevergabe für ServerOft nicht nötig durch Workflow (Maintainer, Teams)
I Potentielles Chaos mit mehreren LeutenWenn sich nicht auf einen Workflow geeignigt wird
RWTH Aachen UniversityRechen- und Kommunikationszentrum Einführung in git
![Page 13: Einführung in git - heipei · git ist genauso hilfreich wenn man nur allein arbeitet I Andere Gründe? RWTH Aachen University Rechen- und Kommunikationszentrum Einführung in git](https://reader033.vdocuments.pub/reader033/viewer/2022060406/5f0f56ba7e708231d443aae9/html5/thumbnails/13.jpg)
Technischer Hintergrund”Behind the curtain. . . ”
RWTH Aachen UniversityRechen- und Kommunikationszentrum Einführung in git
![Page 14: Einführung in git - heipei · git ist genauso hilfreich wenn man nur allein arbeitet I Andere Gründe? RWTH Aachen University Rechen- und Kommunikationszentrum Einführung in git](https://reader033.vdocuments.pub/reader033/viewer/2022060406/5f0f56ba7e708231d443aae9/html5/thumbnails/14.jpg)
git Datenstrukturen und Dateilayout
Die Datenstrukturen von git zu kennen...
I Hilft enorm die Funktion der Befehle zu verstehen.I Vermeidet falsche Arbeitsabläufe.I Ist kein großer Aufwand.
RWTH Aachen UniversityRechen- und Kommunikationszentrum Einführung in git
![Page 15: Einführung in git - heipei · git ist genauso hilfreich wenn man nur allein arbeitet I Andere Gründe? RWTH Aachen University Rechen- und Kommunikationszentrum Einführung in git](https://reader033.vdocuments.pub/reader033/viewer/2022060406/5f0f56ba7e708231d443aae9/html5/thumbnails/15.jpg)
Delta-Storage vs. Snapshotssource control taxonomy
deltastorage
file A !1
file B
file C
C1 C2 C3 C4 C5
!2
!1 !2
!1 !2 !3
A
B
C
C1 C2 C3 C4 C5
A1
B
C1
A1
B
C2
A2
B1
C2
A2
B2
C3
DAGstorage
RWTH Aachen UniversityRechen- und Kommunikationszentrum Einführung in git
![Page 16: Einführung in git - heipei · git ist genauso hilfreich wenn man nur allein arbeitet I Andere Gründe? RWTH Aachen University Rechen- und Kommunikationszentrum Einführung in git](https://reader033.vdocuments.pub/reader033/viewer/2022060406/5f0f56ba7e708231d443aae9/html5/thumbnails/16.jpg)
git ist ein Dateisystem mit Versionen
Wichtigstes Konzept: Die History ist eine einfach verlinkte Listevon Commits. Die Links zeigen ”zurück”, zeitlich gesehen.
RWTH Aachen UniversityRechen- und Kommunikationszentrum Einführung in git
![Page 17: Einführung in git - heipei · git ist genauso hilfreich wenn man nur allein arbeitet I Andere Gründe? RWTH Aachen University Rechen- und Kommunikationszentrum Einführung in git](https://reader033.vdocuments.pub/reader033/viewer/2022060406/5f0f56ba7e708231d443aae9/html5/thumbnails/17.jpg)
git ist eine Objekt-Datenbank
!"##$%
%&'
%())
*+"*
%())
%())
!"##$%
%())
*+"*
%())
%()) *+"*
!"##$%
%())
*+"*
*+"*
*(&,!-
./01
RWTH Aachen UniversityRechen- und Kommunikationszentrum Einführung in git
![Page 18: Einführung in git - heipei · git ist genauso hilfreich wenn man nur allein arbeitet I Andere Gründe? RWTH Aachen University Rechen- und Kommunikationszentrum Einführung in git](https://reader033.vdocuments.pub/reader033/viewer/2022060406/5f0f56ba7e708231d443aae9/html5/thumbnails/18.jpg)
Commits und Branches
Branches sind nur Zeiger (”references”) auf existierendeCommits
RWTH Aachen UniversityRechen- und Kommunikationszentrum Einführung in git
![Page 19: Einführung in git - heipei · git ist genauso hilfreich wenn man nur allein arbeitet I Andere Gründe? RWTH Aachen University Rechen- und Kommunikationszentrum Einführung in git](https://reader033.vdocuments.pub/reader033/viewer/2022060406/5f0f56ba7e708231d443aae9/html5/thumbnails/19.jpg)
HEAD - der aktuelle Branch
HEAD zeigt an auf welchem Branch aktuell Commitsgespeichert werden
RWTH Aachen UniversityRechen- und Kommunikationszentrum Einführung in git
![Page 20: Einführung in git - heipei · git ist genauso hilfreich wenn man nur allein arbeitet I Andere Gründe? RWTH Aachen University Rechen- und Kommunikationszentrum Einführung in git](https://reader033.vdocuments.pub/reader033/viewer/2022060406/5f0f56ba7e708231d443aae9/html5/thumbnails/20.jpg)
git checkout - den aktuellen Branch ändern
Ein Checkout aktualisiert den Worktree und den HEAD-Zeiger
RWTH Aachen UniversityRechen- und Kommunikationszentrum Einführung in git
![Page 21: Einführung in git - heipei · git ist genauso hilfreich wenn man nur allein arbeitet I Andere Gründe? RWTH Aachen University Rechen- und Kommunikationszentrum Einführung in git](https://reader033.vdocuments.pub/reader033/viewer/2022060406/5f0f56ba7e708231d443aae9/html5/thumbnails/21.jpg)
git commit - einen Commit erstellen
Da HEAD auf ”testing” zeigte wurde hier der Commit angelegt
RWTH Aachen UniversityRechen- und Kommunikationszentrum Einführung in git
![Page 22: Einführung in git - heipei · git ist genauso hilfreich wenn man nur allein arbeitet I Andere Gründe? RWTH Aachen University Rechen- und Kommunikationszentrum Einführung in git](https://reader033.vdocuments.pub/reader033/viewer/2022060406/5f0f56ba7e708231d443aae9/html5/thumbnails/22.jpg)
git checkout - zum ersten Branch zurück
Es müssen währenddessen noch Änderungen amHauptentwicklungszweig vorgenommen werden
RWTH Aachen UniversityRechen- und Kommunikationszentrum Einführung in git
![Page 23: Einführung in git - heipei · git ist genauso hilfreich wenn man nur allein arbeitet I Andere Gründe? RWTH Aachen University Rechen- und Kommunikationszentrum Einführung in git](https://reader033.vdocuments.pub/reader033/viewer/2022060406/5f0f56ba7e708231d443aae9/html5/thumbnails/23.jpg)
git commit - ein paralleler Branch
RWTH Aachen UniversityRechen- und Kommunikationszentrum Einführung in git
![Page 24: Einführung in git - heipei · git ist genauso hilfreich wenn man nur allein arbeitet I Andere Gründe? RWTH Aachen University Rechen- und Kommunikationszentrum Einführung in git](https://reader033.vdocuments.pub/reader033/viewer/2022060406/5f0f56ba7e708231d443aae9/html5/thumbnails/24.jpg)
Branching und Merging
!"
#$%&'(
!)
!* !+
',-'(.#'/&!"
#$%&'(
!)
!* !+
!,
'-.'(/#'0&
!1
2"
git checkout -b experiment
HEAD
RWTH Aachen UniversityRechen- und Kommunikationszentrum Einführung in git
![Page 25: Einführung in git - heipei · git ist genauso hilfreich wenn man nur allein arbeitet I Andere Gründe? RWTH Aachen University Rechen- und Kommunikationszentrum Einführung in git](https://reader033.vdocuments.pub/reader033/viewer/2022060406/5f0f56ba7e708231d443aae9/html5/thumbnails/25.jpg)
Branching und Merging
!"
#$%&'(
!)
!* !+
',-'(.#'/&
!"
#$%&'(
!)
!* !+
!,
'-.'(/#'0&
!1
2"
git commit
HEAD
RWTH Aachen UniversityRechen- und Kommunikationszentrum Einführung in git
![Page 26: Einführung in git - heipei · git ist genauso hilfreich wenn man nur allein arbeitet I Andere Gründe? RWTH Aachen University Rechen- und Kommunikationszentrum Einführung in git](https://reader033.vdocuments.pub/reader033/viewer/2022060406/5f0f56ba7e708231d443aae9/html5/thumbnails/26.jpg)
Branching und Merging
!"
#$%&'(
!)
!* !+
',-'(.#'/&
!"
#$%&'(
!)
!* !+
!,
'-.'(/#'0&
!1
2"
git commit
git commit
HEAD
RWTH Aachen UniversityRechen- und Kommunikationszentrum Einführung in git
![Page 27: Einführung in git - heipei · git ist genauso hilfreich wenn man nur allein arbeitet I Andere Gründe? RWTH Aachen University Rechen- und Kommunikationszentrum Einführung in git](https://reader033.vdocuments.pub/reader033/viewer/2022060406/5f0f56ba7e708231d443aae9/html5/thumbnails/27.jpg)
Branching und Merging
!"
#$%&'(
!)
!* !+
',-'(.#'/&
!"
#$%&'(
!)
!* !+
!,
'-.'(/#'0&
!1
2"
HEAD
git checkout master
RWTH Aachen UniversityRechen- und Kommunikationszentrum Einführung in git
![Page 28: Einführung in git - heipei · git ist genauso hilfreich wenn man nur allein arbeitet I Andere Gründe? RWTH Aachen University Rechen- und Kommunikationszentrum Einführung in git](https://reader033.vdocuments.pub/reader033/viewer/2022060406/5f0f56ba7e708231d443aae9/html5/thumbnails/28.jpg)
Branching und Merging
!"
#$%&'(
!)
!* !+
!,
'-.'(/#'0&
!1
2"
!"
#$%&'(
!)
!* !+
!,
'-.'(/#'0&
!1
2"git commit
HEAD
RWTH Aachen UniversityRechen- und Kommunikationszentrum Einführung in git
![Page 29: Einführung in git - heipei · git ist genauso hilfreich wenn man nur allein arbeitet I Andere Gründe? RWTH Aachen University Rechen- und Kommunikationszentrum Einführung in git](https://reader033.vdocuments.pub/reader033/viewer/2022060406/5f0f56ba7e708231d443aae9/html5/thumbnails/29.jpg)
Branching und Merging
!"
#$%&'(
!)
!* !+
!,
'-.'(/#'0&
!1
2"
git checkout experimentgit commit
HEAD
RWTH Aachen UniversityRechen- und Kommunikationszentrum Einführung in git
![Page 30: Einführung in git - heipei · git ist genauso hilfreich wenn man nur allein arbeitet I Andere Gründe? RWTH Aachen University Rechen- und Kommunikationszentrum Einführung in git](https://reader033.vdocuments.pub/reader033/viewer/2022060406/5f0f56ba7e708231d443aae9/html5/thumbnails/30.jpg)
Branching und Merging
!"!#
!$ !%
!&
'()'*+,'-.
!/
!0
,12.'*3"
git checkout mastergit merge experiment
HEAD
RWTH Aachen UniversityRechen- und Kommunikationszentrum Einführung in git
![Page 31: Einführung in git - heipei · git ist genauso hilfreich wenn man nur allein arbeitet I Andere Gründe? RWTH Aachen University Rechen- und Kommunikationszentrum Einführung in git](https://reader033.vdocuments.pub/reader033/viewer/2022060406/5f0f56ba7e708231d443aae9/html5/thumbnails/31.jpg)
Remotes
I Remotes sind Kürzel um mit anderen Repositories zuarbeiten. Namespaces nach Repository: jojo/master
I Remote Branches (Tracking Branches) dienen dazu derArbeit in anderen Repositories zu folgen
I Entwickelt wird immer auf lokalen BranchesI Auf Remote Branches kann nicht committed werdenI Remote Branches werden nur durch fetch / pull geändert
RWTH Aachen UniversityRechen- und Kommunikationszentrum Einführung in git
![Page 32: Einführung in git - heipei · git ist genauso hilfreich wenn man nur allein arbeitet I Andere Gründe? RWTH Aachen University Rechen- und Kommunikationszentrum Einführung in git](https://reader033.vdocuments.pub/reader033/viewer/2022060406/5f0f56ba7e708231d443aae9/html5/thumbnails/32.jpg)
Tracking Branch
RWTH Aachen UniversityRechen- und Kommunikationszentrum Einführung in git
![Page 33: Einführung in git - heipei · git ist genauso hilfreich wenn man nur allein arbeitet I Andere Gründe? RWTH Aachen University Rechen- und Kommunikationszentrum Einführung in git](https://reader033.vdocuments.pub/reader033/viewer/2022060406/5f0f56ba7e708231d443aae9/html5/thumbnails/33.jpg)
Tracking Branch
RWTH Aachen UniversityRechen- und Kommunikationszentrum Einführung in git
![Page 34: Einführung in git - heipei · git ist genauso hilfreich wenn man nur allein arbeitet I Andere Gründe? RWTH Aachen University Rechen- und Kommunikationszentrum Einführung in git](https://reader033.vdocuments.pub/reader033/viewer/2022060406/5f0f56ba7e708231d443aae9/html5/thumbnails/34.jpg)
Tracking Branch
RWTH Aachen UniversityRechen- und Kommunikationszentrum Einführung in git
![Page 35: Einführung in git - heipei · git ist genauso hilfreich wenn man nur allein arbeitet I Andere Gründe? RWTH Aachen University Rechen- und Kommunikationszentrum Einführung in git](https://reader033.vdocuments.pub/reader033/viewer/2022060406/5f0f56ba7e708231d443aae9/html5/thumbnails/35.jpg)
Der Index / Stage
Der Index ist sehr mächtig und Alleinstellungsmerkmal von git
RWTH Aachen UniversityRechen- und Kommunikationszentrum Einführung in git
![Page 36: Einführung in git - heipei · git ist genauso hilfreich wenn man nur allein arbeitet I Andere Gründe? RWTH Aachen University Rechen- und Kommunikationszentrum Einführung in git](https://reader033.vdocuments.pub/reader033/viewer/2022060406/5f0f56ba7e708231d443aae9/html5/thumbnails/36.jpg)
Der Index / Stage
Typische Arbeitsweise mit git (links).Workflow wie bei SVN (rechts) auch möglich.
RWTH Aachen UniversityRechen- und Kommunikationszentrum Einführung in git
![Page 37: Einführung in git - heipei · git ist genauso hilfreich wenn man nur allein arbeitet I Andere Gründe? RWTH Aachen University Rechen- und Kommunikationszentrum Einführung in git](https://reader033.vdocuments.pub/reader033/viewer/2022060406/5f0f56ba7e708231d443aae9/html5/thumbnails/37.jpg)
Dateizustände
Anfangs evtl. verwirrend, git status zeigt immer Hilfe an.
RWTH Aachen UniversityRechen- und Kommunikationszentrum Einführung in git
![Page 38: Einführung in git - heipei · git ist genauso hilfreich wenn man nur allein arbeitet I Andere Gründe? RWTH Aachen University Rechen- und Kommunikationszentrum Einführung in git](https://reader033.vdocuments.pub/reader033/viewer/2022060406/5f0f56ba7e708231d443aae9/html5/thumbnails/38.jpg)
PraxisBefehle, Dateien, Programme
RWTH Aachen UniversityRechen- und Kommunikationszentrum Einführung in git
![Page 39: Einführung in git - heipei · git ist genauso hilfreich wenn man nur allein arbeitet I Andere Gründe? RWTH Aachen University Rechen- und Kommunikationszentrum Einführung in git](https://reader033.vdocuments.pub/reader033/viewer/2022060406/5f0f56ba7e708231d443aae9/html5/thumbnails/39.jpg)
Wichtige git-Befehle - Arbeiten
I git help <command>Hilfe zu git-commands, wichtigster Befehl ;)
I git initEin git-Repo im aktuellen Verzeichnis beginnen
I git addDatei dem Index hinzufügen
I git statusStatus der Dateien im Arbeitsverzeichnis
I git diffAktuelle Änderungen als diff anzeigen
I git commitCommit erstellen
RWTH Aachen UniversityRechen- und Kommunikationszentrum Einführung in git
![Page 40: Einführung in git - heipei · git ist genauso hilfreich wenn man nur allein arbeitet I Andere Gründe? RWTH Aachen University Rechen- und Kommunikationszentrum Einführung in git](https://reader033.vdocuments.pub/reader033/viewer/2022060406/5f0f56ba7e708231d443aae9/html5/thumbnails/40.jpg)
Wichtige git-Befehle - History
I git logLog (History) anzeigen
I git branchBranches anzeigen (aktueller Branch hervorgehoben)
I git checkout <branch>Branch auschecken
I git show <object>Objekt (Branch, Commit, HEAD) anzeigen
I git blame - <file>Anzeigen wer zuletzt welche Zeile geändert hat
RWTH Aachen UniversityRechen- und Kommunikationszentrum Einführung in git
![Page 41: Einführung in git - heipei · git ist genauso hilfreich wenn man nur allein arbeitet I Andere Gründe? RWTH Aachen University Rechen- und Kommunikationszentrum Einführung in git](https://reader033.vdocuments.pub/reader033/viewer/2022060406/5f0f56ba7e708231d443aae9/html5/thumbnails/41.jpg)
Wichtige git-Befehle - Kollaboration
I git branch -aAlle Branches anzeigen
I git checkout -b <new_branch> <old_branch>Branch erzeugen und auschecken
I git pull bzw. git fetchAktualisierung des Repositories vom Server
I git pushAktualisierung des Repositories auf den Server
I git merge <branch>Einbinden eines anderen Branches
I git remoteAnzeigen von eingetragenen Servern
RWTH Aachen UniversityRechen- und Kommunikationszentrum Einführung in git
![Page 42: Einführung in git - heipei · git ist genauso hilfreich wenn man nur allein arbeitet I Andere Gründe? RWTH Aachen University Rechen- und Kommunikationszentrum Einführung in git](https://reader033.vdocuments.pub/reader033/viewer/2022060406/5f0f56ba7e708231d443aae9/html5/thumbnails/42.jpg)
git revisions
Für Befehle wie git log, git diff, git checkout, gitshow etc.
I dae86e1950b1277e545cee180551750029cfe735 oderdae86e (falls eindeutig)SHA1 des Commits
I master oder origin/masterBranch-Namen (References)
I master˜5Der fünfte Vorgänger des letzten Commits auf master
I master@{yesterday}Zustand von master gestern
Siehe auch git help rev-parse für weitere Optionen
RWTH Aachen UniversityRechen- und Kommunikationszentrum Einführung in git
![Page 43: Einführung in git - heipei · git ist genauso hilfreich wenn man nur allein arbeitet I Andere Gründe? RWTH Aachen University Rechen- und Kommunikationszentrum Einführung in git](https://reader033.vdocuments.pub/reader033/viewer/2022060406/5f0f56ba7e708231d443aae9/html5/thumbnails/43.jpg)
git revisions
Für Befehle wie git log, git diff etc.
I master..testingÄnderungen in testing aber nicht in master
I master..Änderungen im aktuellen Branch die nicht in master sind
I ..masterÄnderungen die in master aber nicht im aktuellen Branch sind
I master...testingSymmetrische Differenz
Siehe auch git help rev-parse für weitere Optionen
RWTH Aachen UniversityRechen- und Kommunikationszentrum Einführung in git
![Page 44: Einführung in git - heipei · git ist genauso hilfreich wenn man nur allein arbeitet I Andere Gründe? RWTH Aachen University Rechen- und Kommunikationszentrum Einführung in git](https://reader033.vdocuments.pub/reader033/viewer/2022060406/5f0f56ba7e708231d443aae9/html5/thumbnails/44.jpg)
Wichtige git-Dateien
I $HOME/.gitconfiggit Benutzerkonfiguration
I .gitignoreZum Ignorieren bestimmter Dateien bzw. Dateitypen,Verzeichnisweise und rekursiv
I .gitgit Repository, nur einmal, im obersten Verzeichnis
I .git/configKonfiguration auf Repository-Ebene, z.B. Remotes
I .git/objectsObjektdatenbank (Dateien, Commits, Tags)
I .git/refsBranches (References)
RWTH Aachen UniversityRechen- und Kommunikationszentrum Einführung in git
![Page 45: Einführung in git - heipei · git ist genauso hilfreich wenn man nur allein arbeitet I Andere Gründe? RWTH Aachen University Rechen- und Kommunikationszentrum Einführung in git](https://reader033.vdocuments.pub/reader033/viewer/2022060406/5f0f56ba7e708231d443aae9/html5/thumbnails/45.jpg)
Wichtige git-Dateien - Branches
Namespaces für refs (”references”) in .git:I .git/refs/heads
Lokale BranchesI .git/refs/remotes
Remote BranchesI .git/refs/tags
Tags (Versionsnummern)Gearbeitet wird immer auf lokalen Branches, Remote Brancheswerden nur von git pull bzw. git fetch geändert.Commits ohne Branch gehen früher oder später verloren!
RWTH Aachen UniversityRechen- und Kommunikationszentrum Einführung in git
![Page 46: Einführung in git - heipei · git ist genauso hilfreich wenn man nur allein arbeitet I Andere Gründe? RWTH Aachen University Rechen- und Kommunikationszentrum Einführung in git](https://reader033.vdocuments.pub/reader033/viewer/2022060406/5f0f56ba7e708231d443aae9/html5/thumbnails/46.jpg)
git Tutorial
Initiale Konfiguration:git config −−global user.name ”Johannes Gilger”
git config −−global user.email ”[email protected]”
Eventuell noch:git config −−global color.ui ”auto”
git config −−global color.status.changed ”yellow”
RWTH Aachen UniversityRechen- und Kommunikationszentrum Einführung in git
![Page 47: Einführung in git - heipei · git ist genauso hilfreich wenn man nur allein arbeitet I Andere Gründe? RWTH Aachen University Rechen- und Kommunikationszentrum Einführung in git](https://reader033.vdocuments.pub/reader033/viewer/2022060406/5f0f56ba7e708231d443aae9/html5/thumbnails/47.jpg)
Das erste Repository
RWTH Aachen UniversityRechen- und Kommunikationszentrum Einführung in git
![Page 48: Einführung in git - heipei · git ist genauso hilfreich wenn man nur allein arbeitet I Andere Gründe? RWTH Aachen University Rechen- und Kommunikationszentrum Einführung in git](https://reader033.vdocuments.pub/reader033/viewer/2022060406/5f0f56ba7e708231d443aae9/html5/thumbnails/48.jpg)
Das erste Repository
RWTH Aachen UniversityRechen- und Kommunikationszentrum Einführung in git
![Page 49: Einführung in git - heipei · git ist genauso hilfreich wenn man nur allein arbeitet I Andere Gründe? RWTH Aachen University Rechen- und Kommunikationszentrum Einführung in git](https://reader033.vdocuments.pub/reader033/viewer/2022060406/5f0f56ba7e708231d443aae9/html5/thumbnails/49.jpg)
Das erste Repository
RWTH Aachen UniversityRechen- und Kommunikationszentrum Einführung in git
![Page 50: Einführung in git - heipei · git ist genauso hilfreich wenn man nur allein arbeitet I Andere Gründe? RWTH Aachen University Rechen- und Kommunikationszentrum Einführung in git](https://reader033.vdocuments.pub/reader033/viewer/2022060406/5f0f56ba7e708231d443aae9/html5/thumbnails/50.jpg)
git Installation & Interfaces
I Linux: Installation mittels DistributionGrafische Programme: gitk und git gui
I Mac OS X: Installation mittels fink / MacPorts odergit-osx-installerGrafische Programme: gitk oder GitX
I Windows: Installation per msysgitGrafische Programme: tortoisegit
I Web: GitWeb (privat), GitHub (Hosted)
⇒Wie immer ist die git-Webseite der beste AnlaufpunktAber: Eigentlich kein GUI nötig um mit git zu arbeiten
RWTH Aachen UniversityRechen- und Kommunikationszentrum Einführung in git
![Page 51: Einführung in git - heipei · git ist genauso hilfreich wenn man nur allein arbeitet I Andere Gründe? RWTH Aachen University Rechen- und Kommunikationszentrum Einführung in git](https://reader033.vdocuments.pub/reader033/viewer/2022060406/5f0f56ba7e708231d443aae9/html5/thumbnails/51.jpg)
git GUIs - GitX
RWTH Aachen UniversityRechen- und Kommunikationszentrum Einführung in git
![Page 52: Einführung in git - heipei · git ist genauso hilfreich wenn man nur allein arbeitet I Andere Gründe? RWTH Aachen University Rechen- und Kommunikationszentrum Einführung in git](https://reader033.vdocuments.pub/reader033/viewer/2022060406/5f0f56ba7e708231d443aae9/html5/thumbnails/52.jpg)
git GUIs - gitk
RWTH Aachen UniversityRechen- und Kommunikationszentrum Einführung in git
![Page 53: Einführung in git - heipei · git ist genauso hilfreich wenn man nur allein arbeitet I Andere Gründe? RWTH Aachen University Rechen- und Kommunikationszentrum Einführung in git](https://reader033.vdocuments.pub/reader033/viewer/2022060406/5f0f56ba7e708231d443aae9/html5/thumbnails/53.jpg)
git GUIs - git gui
Dateien können abschnittsweise committed werden
RWTH Aachen UniversityRechen- und Kommunikationszentrum Einführung in git
![Page 54: Einführung in git - heipei · git ist genauso hilfreich wenn man nur allein arbeitet I Andere Gründe? RWTH Aachen University Rechen- und Kommunikationszentrum Einführung in git](https://reader033.vdocuments.pub/reader033/viewer/2022060406/5f0f56ba7e708231d443aae9/html5/thumbnails/54.jpg)
git GUIs - tortoisegit
RWTH Aachen UniversityRechen- und Kommunikationszentrum Einführung in git
![Page 55: Einführung in git - heipei · git ist genauso hilfreich wenn man nur allein arbeitet I Andere Gründe? RWTH Aachen University Rechen- und Kommunikationszentrum Einführung in git](https://reader033.vdocuments.pub/reader033/viewer/2022060406/5f0f56ba7e708231d443aae9/html5/thumbnails/55.jpg)
git GUIs - tortoisegit
RWTH Aachen UniversityRechen- und Kommunikationszentrum Einführung in git
![Page 56: Einführung in git - heipei · git ist genauso hilfreich wenn man nur allein arbeitet I Andere Gründe? RWTH Aachen University Rechen- und Kommunikationszentrum Einführung in git](https://reader033.vdocuments.pub/reader033/viewer/2022060406/5f0f56ba7e708231d443aae9/html5/thumbnails/56.jpg)
Wie wir im NOC git benutzen
I Szenario 1: Entwicklung (kleinerer) WebanwendungenMeistens an Ort und Stelle (.git), sehr schnell und einfach
I Szenario 2: Änderung an externer Software festhalten(z.B. wenn Software von uns ”shibbolized” wird)
I Szenario 3: Größere Projekte mit mehreren Mitarbeitern.Ausgezeichnete Versionen (v0.5) direkt unterstützt
RWTH Aachen UniversityRechen- und Kommunikationszentrum Einführung in git
![Page 57: Einführung in git - heipei · git ist genauso hilfreich wenn man nur allein arbeitet I Andere Gründe? RWTH Aachen University Rechen- und Kommunikationszentrum Einführung in git](https://reader033.vdocuments.pub/reader033/viewer/2022060406/5f0f56ba7e708231d443aae9/html5/thumbnails/57.jpg)
Wie wir im NOC git benutzen
RWTH Aachen UniversityRechen- und Kommunikationszentrum Einführung in git
![Page 58: Einführung in git - heipei · git ist genauso hilfreich wenn man nur allein arbeitet I Andere Gründe? RWTH Aachen University Rechen- und Kommunikationszentrum Einführung in git](https://reader033.vdocuments.pub/reader033/viewer/2022060406/5f0f56ba7e708231d443aae9/html5/thumbnails/58.jpg)
Wie wir im NOC git benutzen
RWTH Aachen UniversityRechen- und Kommunikationszentrum Einführung in git
![Page 59: Einführung in git - heipei · git ist genauso hilfreich wenn man nur allein arbeitet I Andere Gründe? RWTH Aachen University Rechen- und Kommunikationszentrum Einführung in git](https://reader033.vdocuments.pub/reader033/viewer/2022060406/5f0f56ba7e708231d443aae9/html5/thumbnails/59.jpg)
Benutzung von git lernen
1. git installierenLinux: Package-Manager
2. Kopie von bisherigem Code in neues VerzeichnisDann ein git init und weiterentwickeln
3. Regelmäßig Doku / manpages lesen4. Alle Befehle ausprobieren
Insbesondere destruktive Aktionen und Recovery5. Im Zweifelsfall vorher das ganze Verzeichnis kopieren
Als Backup wenn man sich noch nicht ganz sicher ist6. Dateien in .git anschauen
Was sind Objekte? Was sind Branches?
RWTH Aachen UniversityRechen- und Kommunikationszentrum Einführung in git
![Page 60: Einführung in git - heipei · git ist genauso hilfreich wenn man nur allein arbeitet I Andere Gründe? RWTH Aachen University Rechen- und Kommunikationszentrum Einführung in git](https://reader033.vdocuments.pub/reader033/viewer/2022060406/5f0f56ba7e708231d443aae9/html5/thumbnails/60.jpg)
Literatur zu git
I Pro Git - http://progit.org/book/Sehr ausführliches Online-Buch das alle Themenbehandelt
I ”Getting Git” -http://www.gitcasts.com/git-talkGuter Vortrag (mit Folien) zur Benutzung undDatenstrukturen
I git ref - http://gitref.org/Die wichtigsten git-Befehle kurz erklärt
I git - SVN crash course -http://git-scm.com/course/svn.htmlEinführung in git mit Vergleichen zu svn
I Git - kurz & gut - O’Reilly, ISBN: 978-3-89721-914-4Gute und umfassende Einführung in Deutsch (e9,90)
RWTH Aachen UniversityRechen- und Kommunikationszentrum Einführung in git
![Page 61: Einführung in git - heipei · git ist genauso hilfreich wenn man nur allein arbeitet I Andere Gründe? RWTH Aachen University Rechen- und Kommunikationszentrum Einführung in git](https://reader033.vdocuments.pub/reader033/viewer/2022060406/5f0f56ba7e708231d443aae9/html5/thumbnails/61.jpg)
The End
Fragerunde!
Folgefragen können gerne an [email protected] [email protected] gerichtet werden.
Oder einfach vorbei schauen ;)
RWTH Aachen UniversityRechen- und Kommunikationszentrum Einführung in git