Präsentiert von Christian Ehringfeld · 2 29.11.15 Christian Ehringfeld - Git Inhaltsverzeichnis...

21
Git Präsentiert von Christian Ehringfeld

Transcript of Präsentiert von Christian Ehringfeld · 2 29.11.15 Christian Ehringfeld - Git Inhaltsverzeichnis...

Page 1: Präsentiert von Christian Ehringfeld · 2 29.11.15 Christian Ehringfeld - Git Inhaltsverzeichnis Versionsverwaltung Git Demo SVN 2 Git Aufgabe Hilfen

Git

Präsentiert von Christian Ehringfeld

Page 2: Präsentiert von Christian Ehringfeld · 2 29.11.15 Christian Ehringfeld - Git Inhaltsverzeichnis Versionsverwaltung Git Demo SVN 2 Git Aufgabe Hilfen

29.11.152 Christian Ehringfeld - Git

Inhaltsverzeichnis

Versionsverwaltung

Git

Demo

SVN 2 Git

Aufgabe

Hilfen

Page 3: Präsentiert von Christian Ehringfeld · 2 29.11.15 Christian Ehringfeld - Git Inhaltsverzeichnis Versionsverwaltung Git Demo SVN 2 Git Aufgabe Hilfen

29.11.153 Christian Ehringfeld - Git

Versionsverwaltung

Protokollierung von Änderungen

Versionierung

Benutzerkennung und Zeitstempel

Wiederherstellung von älteren Versionen

Archivierung von Projektständen

Page 4: Präsentiert von Christian Ehringfeld · 2 29.11.15 Christian Ehringfeld - Git Inhaltsverzeichnis Versionsverwaltung Git Demo SVN 2 Git Aufgabe Hilfen

29.11.154 Christian Ehringfeld - Git

Arten

Lokale Versionsverwaltung

Zentrale Versionverwaltung

Verteilte Versionsverwaltung

Vergleich

Page 5: Präsentiert von Christian Ehringfeld · 2 29.11.15 Christian Ehringfeld - Git Inhaltsverzeichnis Versionsverwaltung Git Demo SVN 2 Git Aufgabe Hilfen

29.11.155 Christian Ehringfeld - Git

Lokale Versionsverwaltung

Lokale, persönliche Speicherung von „Versionen“

Beispiel:

Auto-Save Funktion (Strg+Z)

Page 6: Präsentiert von Christian Ehringfeld · 2 29.11.15 Christian Ehringfeld - Git Inhaltsverzeichnis Versionsverwaltung Git Demo SVN 2 Git Aufgabe Hilfen

29.11.156 Christian Ehringfeld - Git

Zentrale Versionsverwaltung

Speicherung auf EINEM zentralem Server

Meist mit Benutzer-/Rechteverwaltung

Beispiele:

SVN CVS Team Foundation Server

Page 7: Präsentiert von Christian Ehringfeld · 2 29.11.15 Christian Ehringfeld - Git Inhaltsverzeichnis Versionsverwaltung Git Demo SVN 2 Git Aufgabe Hilfen

29.11.157 Christian Ehringfeld - Git

Verteilte Versionsverwaltung

Versionen zunächst lokal gespeichert

Enthält üblicherweise alle Versionen

Kann mit anderen geteilt/verteilt werden

Beispiele:

Git Bazaar Bitkeeper Mercurial

Page 8: Präsentiert von Christian Ehringfeld · 2 29.11.15 Christian Ehringfeld - Git Inhaltsverzeichnis Versionsverwaltung Git Demo SVN 2 Git Aufgabe Hilfen

29.11.158 Christian Ehringfeld - Git

Vergleich

Page 9: Präsentiert von Christian Ehringfeld · 2 29.11.15 Christian Ehringfeld - Git Inhaltsverzeichnis Versionsverwaltung Git Demo SVN 2 Git Aufgabe Hilfen

29.11.159 Christian Ehringfeld - Git

Vergleich

Zentrale Versionsverwaltung Verteilte Versionsverwaltung

Single-Point-of-Failure Offline-VersionierungKein Single-Point-of-Failure

übersichtlich Änderungen können ohne Server geteilt werden

Kleine Versionsnummern Zu jedem Zeitpunkt konfliktfreie Version vorhanden

Wenig Redundanz Mehr Redundanzen möglich

schnell

Branches komfortabler

Page 10: Präsentiert von Christian Ehringfeld · 2 29.11.15 Christian Ehringfeld - Git Inhaltsverzeichnis Versionsverwaltung Git Demo SVN 2 Git Aufgabe Hilfen

29.11.1510 Christian Ehringfeld - Git

Begriffe

Repository

Branch

Tag

Commit

Working Copy

Diff

Conflict

HEAD

Page 11: Präsentiert von Christian Ehringfeld · 2 29.11.15 Christian Ehringfeld - Git Inhaltsverzeichnis Versionsverwaltung Git Demo SVN 2 Git Aufgabe Hilfen

29.11.1511 Christian Ehringfeld - Git

Git

Verteilte Versionsverwaltung

Ursprünglich für den Linux-Kernel

Breite Plattformunterstützung

Wer nutzt Git?

Android, Debian, Gnome, jQuery, LibreOffice, Linux, PHP, Samba, Qt, TYPO3, VLC, …

Siehe github

Page 12: Präsentiert von Christian Ehringfeld · 2 29.11.15 Christian Ehringfeld - Git Inhaltsverzeichnis Versionsverwaltung Git Demo SVN 2 Git Aufgabe Hilfen

29.11.1512 Christian Ehringfeld - Git

Git – Die wichtigsten Befehle

git add DATEI ORDNERgit add DATEI ORDNER

git commit [-m “fixes #42“]git commit [-m “fixes #42“]

git init [name]git init [name]

git clone http://YOURDOMAIN/REPOgit clone http://YOURDOMAIN/REPO

git pull [origin] [branch]git pull [origin] [branch]

git push [origin] [branch]git push [origin] [branch]

git merge [branch/commit]git merge [branch/commit]

git checkout [-b] [branch/commit]git checkout [-b] [branch/commit]

Page 13: Präsentiert von Christian Ehringfeld · 2 29.11.15 Christian Ehringfeld - Git Inhaltsverzeichnis Versionsverwaltung Git Demo SVN 2 Git Aufgabe Hilfen

29.11.1513 Christian Ehringfeld - Git

Git

Demo

Page 14: Präsentiert von Christian Ehringfeld · 2 29.11.15 Christian Ehringfeld - Git Inhaltsverzeichnis Versionsverwaltung Git Demo SVN 2 Git Aufgabe Hilfen

29.11.1514 Christian Ehringfeld - Git

Git Konfiguration

git config --global user.name "Max Muster"git config --global user.name "Max Muster"

git config --global user.email git config --global user.email "[email protected]""[email protected]"

git config --global color.ui autogit config --global color.ui auto

Speicherung der Anmeldedaten:Speicherung der Anmeldedaten:

git config --global credential.helper storegit config --global credential.helper store

Page 15: Präsentiert von Christian Ehringfeld · 2 29.11.15 Christian Ehringfeld - Git Inhaltsverzeichnis Versionsverwaltung Git Demo SVN 2 Git Aufgabe Hilfen

29.11.1515 Christian Ehringfeld - Git

.gitignore

(Temporäre) Dateien und Pfade exkludieren

vim .gitignorevim .gitignore

*.log*.log

build/build/

temp-*temp-*

dist/dist/ git add .gitignore & git commit -m “added .gitignore“git add .gitignore & git commit -m “added .gitignore“

Page 16: Präsentiert von Christian Ehringfeld · 2 29.11.15 Christian Ehringfeld - Git Inhaltsverzeichnis Versionsverwaltung Git Demo SVN 2 Git Aufgabe Hilfen

29.11.1516 Christian Ehringfeld - Git

Redmine

Bei vorhandenem Git Repository:

git remote add origin http://YOURDOMAIN/REPOgit remote add origin http://YOURDOMAIN/REPO

Kontrolle mit git remote -vKontrolle mit git remote -v

git pull origingit pull origin

git push origin #branch/tag angebengit push origin #branch/tag angeben

Page 17: Präsentiert von Christian Ehringfeld · 2 29.11.15 Christian Ehringfeld - Git Inhaltsverzeichnis Versionsverwaltung Git Demo SVN 2 Git Aufgabe Hilfen

29.11.1517 Christian Ehringfeld - Git

SVN 2 Git

git svn clone http://YOURDOMAIN/svn/PROJEKTgit svn clone http://YOURDOMAIN/svn/PROJEKT

Für „advanced“ Migration siehe Quellen

Page 18: Präsentiert von Christian Ehringfeld · 2 29.11.15 Christian Ehringfeld - Git Inhaltsverzeichnis Versionsverwaltung Git Demo SVN 2 Git Aufgabe Hilfen

29.11.1518 Christian Ehringfeld - Git

Aufgabe

Installiere Git

Importiere das Projekt von Git (http://YOURDOMAIN/git-test)

Erstelle eine Datei mit willkürlichem Inhalt

Stell die Datei deinen Kollegen über die Versionsverwaltung zur Verfügung

Schau über die Versionsverwaltung, was die anderen hochgeladen haben

Page 19: Präsentiert von Christian Ehringfeld · 2 29.11.15 Christian Ehringfeld - Git Inhaltsverzeichnis Versionsverwaltung Git Demo SVN 2 Git Aufgabe Hilfen

29.11.1519 Christian Ehringfeld - Git

Git

Fragen?

Page 20: Präsentiert von Christian Ehringfeld · 2 29.11.15 Christian Ehringfeld - Git Inhaltsverzeichnis Versionsverwaltung Git Demo SVN 2 Git Aufgabe Hilfen

29.11.1520 Christian Ehringfeld - Git

Hilfen

https://training.github.com/kit/downloads/github-git-cheat-sheet.pdf

http://www.cheat-sheets.org/saved-copy/git-cheat-sheet.pdf

https://rogerdudler.github.io/git-guide/index.de.html

http://justinhileman.info/article/git-pretty/

http://git-scm.com/book/de/v1

Git als „Spiel“:

http://pcottle.github.io/learnGitBranching/

https://try.github.io/levels/1/challenges/1

Page 21: Präsentiert von Christian Ehringfeld · 2 29.11.15 Christian Ehringfeld - Git Inhaltsverzeichnis Versionsverwaltung Git Demo SVN 2 Git Aufgabe Hilfen

29.11.1521 Christian Ehringfeld - Git

Quellen

https://www.mittwald.de/blog/wp-content/uploads/2013/05/Bildschirmfoto-2013-05-13-um-09.53.36.png

http://www.itworld.com/article/2885956/migrating-from-svn-to-git-version-control-part-2.html

Präsentation „Versionsverwaltung“ von Daniel Failing