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

No description
by

Paul Prezi

on 31 March 2015

Comments (0)

Please log in to add your comment.

Report abuse

Transcript of GIT

+ Git mach Branching einfach!
+ Jeder Nutzer in Git ist im Besitzt eines eigenen vollständigen Repositories!
Allgemeines
First Steps
+ Installation
+ Konfiguration
- Linux Dist.:
$ [sudo] apt-get install git
- Mac OS X:
http://code.google.com/p/git-osx-installer
- Windows:
1. Eigene Identität festlegen
- $ git config --global user.name "John Doe"
- $ git config --global user.email johndoe@example.com
2. Editor wählen (optional)
3. Diff-Editor wählen (optional)
- $ git config --global core.editor vim
- $ git config --global core.editor vimdiff
+ Git für Eclipse (Kepler)
- EGit
- Version: 3.3.1
- I.d.R. in der EcInstallation über Eclipse Marketplace
1. Identität festlegen
- Window -> Prefernces
Why is Git so f... !
Versionskontrollsysteme (VCS)
Branching I
Branching II
Was sonst II?
Merging
Was sonst I?
Why Should we
not use Git?

+ Keine Frage, Branching ist sinnvoll, aber ...
+ Zentrales VCS
CVS, SVN, ...
Ein zentrales Repository
Struktur: client-server , starre Hierarchie
Clients laden nur partielle Teile des Repositories
+ Verteiltes VCS
Git, Mercurial, ...
Viele verteilte Repositories
Struktur: Distributed, flexible Organisation
Jeder Client besitzt ein eigenes Repository
File Status Lifecycle
Herr A.
* Nur eine mögliche Organisation in einem verteilten VCS
+ Staging Area
Dateien werden vor einem commit 'ge-staged'
Alle Dateien im Status 'staged' befinden sich in der sog. 'Staging Area'
Nur Dateien die sich in der 'Staging Area' befinden werden auch commited!
Kunde A. ruft an!
Eine Funktion im Testportal funktioniert nicht!
Testportal
Kunde A
Ein Branch, zu Deutsch Zweig, ist eine (Code-) Abspaltung von einer anderen Version

Warum ist das Konzept von Branching so wichtig? (kleiner Exkurs)

Branching ist ein möglicher Weg zur permanenten Integration (Continous Integration)

Es existieren unterschiedliche Patterns wie und was ein Branch sein sollte (Feature Branch, Realease Branch, ...)
Fuck, neue Features sind bereits implemtiert!
Me
I wouldn't
be such a
DUMBASS
if I had created
a Branch
Ein Branch in Git ist lediglich ein Zeiger auf einem Commit
+ Branches sind extrem schnell erstellt

Das erstellen eine Branches ist eine lokale Operation
+ Branches sind extrem schnell erstellt

Branches existieren erst mal nur lokal
+ Ein Wechsel zwischen Branches ist extrem schnell
+ Entfernte Repositories werden mit eigenen Branches nicht "zugemüllt"
Die meisten Operationen erfolgen lokal und sind damit extrem schnell (DIFF, COMMIT, SWITCH BRANCH, MERGE, ...)
Commits können offline! durchgeführt werden
+ Commit Managing
Vor einem commit werden die Dateien in der 'Staging Area' zusammengefasst
Mit
git commit --amend
können Dateien nachträglich zum letzten Commit ganz einfach hinzugefügt werden
+ Cherry Picking
Einzelne Commits können mit
git cherry-pick
auf einen anderen Branch übertragen werden
Bsp. Das Übertragen eines Hotfixes vom Test- auf den nächsten Release-Branch
+ Ausfallsicherheit
I. d. R. braucht man für Git kein zusätzliches Backup!
Die dezentrale Datenhaltung reicht aus!
+ Und noch viel mehr!
Distriubted Workflows, Rebasing, Gerrit, ...
to Merge could be such a pain in the ass
+ Git vereinfaht auch das Merging
Git speichert immer komplette Dateien (Snapshots) und nicht wie SVN lediglich die Änderungen an Dateien (Diffs)

Meine persönliche Erfahrung (und die Vieler) Git meldet viel weniger bis keine Konflikte beim mergen!
The SVN way
The Git way
+ Git ist ein Versionskontrollsystem (VCS)
der 3. Generation
1. Generation: lokal
2. Generation: zentral
3. Generation: dezentral
+ Freie und offene Software
Lizensierung:
GNU GPLv2
+ Aktuelle Version 1.9.2 (Stand 24.04.14)
+ Entwickelt von Linus Torvalds
Nachteile von Git
- Es ist komplexer als SVN
- Lernaufwand beim Umstieg
- Es gibt keine Revisionsnummern wie in SVN, sondern lediglich Hashwerte
Staging Area, lokale Commits, ...
Neue Befehle, teilweise andere Arbeitsweise, ...
SVN: 22352
Git: 24b9da6552252987aa493b52f8696cd6d3b00373
Fragen?
Git
Eine kurze Einführung
Full transcript