Loading presentation...

Present Remotely

Send the link below via email or IM

Copy

Present to your audience

Start remote presentation

  • Invited audience members will follow you as you navigate and present
  • People invited to a presentation do not need a Prezi account
  • This link expires 10 minutes after you close the presentation
  • A maximum of 30 users can follow your presentation
  • Learn more about this feature in our knowledge base article

Do you really want to delete this prezi?

Neither you, nor the coeditors you shared it with will be able to recover it again.

DeleteCancel

Make your likes visible on Facebook?

Connect your Facebook account to Prezi and let your likes appear on your timeline.
You can change this under Settings & Account at any time.

No, thanks

Git - eine minimale Einführung

No description
by

David Däster

on 21 January 2015

Comments (0)

Please log in to add your comment.

Report abuse

Transcript of Git - eine minimale Einführung

Remote
origin/
Das Repo
"analog" SVN Server
1:n (lokal -> Remote)
z.B. auch Submodules
GIT
A tree of trees
I'm an egoistical bastard, and I name all my projects after myself. First Linux, now git.“
– Linus Torvalds
Git
([t], engl. Schwachkopf)
Jeder Commit bezeichnet einen Tree
Der oder die Eltern als Wurzel
Die Dateien als Blätter
SHA1-Identifizierter BLOB
Die Pfade als Äste
Datum, Author und Message als weitere Metainformationen
SHA1 als Commit-Identifier
Weltweit eindeutig
lokal
same same but different
1:1 Kopie des Remotes
Basis aller Operationen
alle Daten sind im Ordner .git
GIT
A tree of trees
I'm an egoistical bastard, and I name all my projects after myself. First Linux, now git.“
– Linus Torvalds
Git
([t], engl. Blödmann)
Jeder Commit bezeichnet einen Tree
Der oder die Eltern als Wurzel
Die Dateien als Blätter
Jede Version mit SHA1 Hash identifiziert
Die Pfade als Äste
Datum, Author und Message als weitere Metainformationen
Das ganze mittels SHA1-Hash eindeutig identifizierbar
Dies über Projektgrenzen hinweg
Clone
git clone --recursive ssh://...
Unterschiede zu SVN Checkout:
Ganze History
Überprüfung
Alle Branches und Tags
Vermeidung der Duplizierung
Minimierung auf Serverseite
Branches
A tree without branches is a cane
Git - ein Baum aus Bäumen
Korrekte History -> Korrekte Position des Commits
Vermeidung schon erledigter Merges
Beachtung der History
Fetch/Pull
Some update would be perfect
Pull ist vergleichbar mit svn update
FolgendeSchritte:
git fetch
Aktualisierung der Verweise
git merge origin/xxx
Merge von Remote-Branch zu lokal
Fetch/Pull
Ein fetch wird immer funktionieren
Es ändert lokal ja nichts...
Ausnahme: Server nicht verfügbar

Ein pull unter folgenden Umständen nicht:
fetch war erfolglos
Nicht commitete Änderungen
Fehlerhaftes Traking
Merge-Fehler
Commit
Ein commit beinhaltet folgende Änderungen
- Der oder die Vorgänger
- Die geänderten Files
- Den Ort der geänderten Files
- Den Author
- Die Nachricht
- Das Datum

Alle oben genannten Elemente sind zwingend.
Branches
Branches starten als Labels
Parents zeigen die Herkunft
Merge
Push
git push origin master
Nachtragen des Baumes
Analyse der Differenz
Komprimierung aller Daten
Übermittlung

Folgende "Fehlerquellen"
Remote ist aktuller als bekannt.
Kein Fast-Forward möglich.
Fehlende Berechtigungen.
git pull: error ....
Make a label
Merge führt ein oder mehrere Branches in meinen aktuellen Branch ein.

Beispiel:

git checkout dev //Wechsel auf dev
git merge origin/dev //Merge von origin/dev
Full transcript