61
Einführung in git Johannes Gilger & Matthias Lederhofer Rechen- und Kommunikationszentrum der RWTH Aachen Network Operation Center 14. Juli 2010 RWTH Aachen University Rechen- und Kommunikationszentrum Einführung in git

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

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

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

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

Ü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

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

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

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

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

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

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

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

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

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

”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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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