+ All Categories
Home > Education > Minimum introduction to Git

Minimum introduction to Git

Date post: 18-Dec-2014
Category:
Upload: ronny
View: 700 times
Download: 2 times
Share this document with a friend
Description:
A short introduction into Git during Night of Projects 2011 at University of Applied Sciences in Fulda - NSFW!
39
1 Thursday, March 1, 12
Transcript
Page 1: Minimum introduction to Git

1Thursday, March 1, 12

Page 2: Minimum introduction to Git

F*** yourself

2Thursday, March 1, 12

Page 3: Minimum introduction to Git

F*** yourself

with GIT

3Thursday, March 1, 12

Page 4: Minimum introduction to Git

Eigentlich hab ich überhaupt keine Ahnung von dem was ich hier gerade rede. Sei es drum, ich wurde durch die Mitarbeit in einem Open Source Projekt dazu gezwungen, git zu verwenden.

*sigh* Die Welt war doch so schön mit SVN!

Außerdem ist das eine gute Gelegenheit diese ganzen blöden Animationen hier mal auszuprobieren. Die Präsentation steckt voller Copyright violations. Ich bin ein Opfer der Google Bildersuche.

DisclaimerNSFW

4Thursday, March 1, 12

Page 5: Minimum introduction to Git

SVN vs. GIT

Versionskontrolle ist was für Hustensaftlutscher!

Scheisse! Ohne google gehts net?!

GIT ist total einfa

5Thursday, March 1, 12

Page 6: Minimum introduction to Git

Backups?!

Weichei

6Thursday, March 1, 12

Page 7: Minimum introduction to Git

Protokollieren

Archivieren

Wiederherstellen

7Thursday, March 1, 12

Page 8: Minimum introduction to Git

ProtokollierenArchivieren

Wiederherstellen

8Thursday, March 1, 12

Page 9: Minimum introduction to Git

Klingt gut. Was nehm ich?

9Thursday, March 1, 12

Page 10: Minimum introduction to Git

SVN vs. GIT10Thursday, March 1, 12

Page 11: Minimum introduction to Git

Subversionzentral

11Thursday, March 1, 12

Page 12: Minimum introduction to Git

Gitdezentral

12Thursday, March 1, 12

Page 13: Minimum introduction to Git

13Thursday, March 1, 12

Page 14: Minimum introduction to Git

SVN

* Wird sehr gut von anderen Tools unterstützt

* Lässt sich “relativ” leicht verstehen

* Ihr könnt zentrales Rechtemanagement betreiben

14Thursday, March 1, 12

Page 15: Minimum introduction to Git

SVN

* Langsam

* Historie ist dumm

* Branching ist ziemlich anstrengend

* Ohne Server unbrauchbar

15Thursday, March 1, 12

Page 16: Minimum introduction to Git

GIT

* Sau schnell

* Merge ist einfach

* Branch, Branch, Branch ...

* Intelligente Historie

* Geht auch ohne Server

16Thursday, March 1, 12

Page 17: Minimum introduction to Git

GIT

* Steiniger Einstieg* Think dif <!-- © violation here! --> Paradigmenwechsel* Linux/Unix simpel, <omg>Windows</omg>

* Rechtemanagement

17Thursday, March 1, 12

Page 18: Minimum introduction to Git

Git

18Thursday, March 1, 12

Page 19: Minimum introduction to Git

19Thursday, March 1, 12

Page 20: Minimum introduction to Git

Begriffe

20Thursday, March 1, 12

Page 21: Minimum introduction to Git

* Git verwaltet eine Sammlung von Dateien und deren Änderungen über die Zeit

* All diese Informationen werden in der Datenstruktur Repository gespeichert

21Thursday, March 1, 12

Page 22: Minimum introduction to Git

Wie kommt man da hin?

* Ihr braucht git

* Nen bissle Grundkonfiguration

git config --global user.name "FirstName LastName"git config --global user.email "[email protected]"

git config --global color.branch "auto"git config --global color.status "auto"git config --global color.diff "auto"

cd PATH/TO/MY/AWESOME/PROJECTgit init

22Thursday, March 1, 12

Page 23: Minimum introduction to Git

* Eine Sammlung von Dateien, die einen Projektstand wiederspiegeln

* Die Referenz auf sein parent commit object!

* SHA1 name, 40 Zeichen identifizieren das commit object. Erzeugter Hash von relevanten Teilen des commits -> identische commits haben den gleichen Namen

23Thursday, March 1, 12

Page 24: Minimum introduction to Git

Was bedeutet das?

24Thursday, March 1, 12

Page 25: Minimum introduction to Git

DIE git IDEE?!

Versionskontrolle ist die Manipulation des Graphen mit all seinen commits.

Wenn ihr Abfragen oder Änderungen macht,

kann es euch helfen das im Hinterkopf zu

behalten.

25Thursday, March 1, 12

Page 26: Minimum introduction to Git

* Ein head ist eine Referenz auf ein commit object

* By default gibts in jedem Repository einen head der master genannt wird

* Ein Repository kann beliebig viele heads haben

* Der aktuell aktive head wird HEAD genannt

26Thursday, March 1, 12

Page 27: Minimum introduction to Git

Ok wir haben was zum spielen!

git initgit commitgit loggit statusgit diffgit mv / git rm

27Thursday, March 1, 12

Page 28: Minimum introduction to Git

Ok wir haben was zum spielen!

28Thursday, March 1, 12

Page 29: Minimum introduction to Git

Ein branch ist eine Referenz auf ein commit object

Beispiel:

29Thursday, March 1, 12

Page 30: Minimum introduction to Git

git branchgit branch [new-head-name] [reference-to-(B)]git checkout

30Thursday, March 1, 12

Page 31: Minimum introduction to Git

31Thursday, March 1, 12

Page 32: Minimum introduction to Git

HINTS

* aus master wird released (main/trunk)

* Branches beinhalten “halbfertiges”

* Branches zum implementieren neuer Features

* Jeder entwickler branched, commits können IMMER gemacht werden, egal ob fertig oder nicht

* Commits sind billig, es gibt KEINEN Grund nicht zu commiten!

32Thursday, March 1, 12

Page 33: Minimum introduction to Git

33Thursday, March 1, 12

Page 34: Minimum introduction to Git

deletinga branchgit branch -d [head]

34Thursday, March 1, 12

Page 35: Minimum introduction to Git

merge patternMerge hat meistens zwei Gründe:

* Features vom branch in den master zum release ziehen

* Bugfixes und features aus dem master in euren feature-branch ziehen um commit Konflikte zu reduzieren und Bugs gefixt zu bekommen

* Nachteil von dem da oben: Eure feature branch hat nen haufen merge commits

* Hier kann rebasing ins Spiel kommen. Hat aber auch keinen Kuchen :)

35Thursday, March 1, 12

Page 36: Minimum introduction to Git

36Thursday, March 1, 12

Page 37: Minimum introduction to Git

37Thursday, March 1, 12

Page 38: Minimum introduction to Git

git reset --hard HEADgit clean -fdxgit format-patch -M -C [head]

commands

38Thursday, March 1, 12

Page 39: Minimum introduction to Git

Infos

* SmartGit - Non-Plus-Ultra

* gitk

* Charles Duan, Understanding Git Conceptually

* Versionskontrolle mit Git von Jon Loeliger aus dem Verlag O’Reilly

39Thursday, March 1, 12


Recommended