8.)version)control)with)git -...
TRANSCRIPT
![Page 1: 8.)Version)Control)with)Git - uni-tuebingen.deps.informatik.uni-tuebingen.de/.../ss17/se/08-vcs-git.pdf · 2017-06-15 · Software)Engineering Begriffe 8! Repository)! Änderungsgeschichteund)](https://reader033.vdocument.in/reader033/viewer/2022060310/5f0a8ce67e708231d42c2f81/html5/thumbnails/1.jpg)
Software Engineering
Software Engineering8. Version Control with Git
Jonathan Brachthäuser
![Page 2: 8.)Version)Control)with)Git - uni-tuebingen.deps.informatik.uni-tuebingen.de/.../ss17/se/08-vcs-git.pdf · 2017-06-15 · Software)Engineering Begriffe 8! Repository)! Änderungsgeschichteund)](https://reader033.vdocument.in/reader033/viewer/2022060310/5f0a8ce67e708231d42c2f81/html5/thumbnails/2.jpg)
Software Engineering
Einordnung: Zusammenfassung
2
!
Problem
"Anforderung
Anforderungsermittlung -‐ (Nicht-‐)funktionale Anf. -‐ Anwendungsfälle -‐ Userstories
Modellierung -‐ UML -‐ OO-‐Design -‐ Design / Architektur Patterns -‐ SOLID Design Prinzipien -‐ GRASP
Continuous Delivery & Feedback
Testing
/ TDD /
BDD
Realisierung -‐ Programmierrichtlinien -‐ Code Smells -‐ Versionsverwaltung -‐ Continuous Integration -‐ Code Reviews -‐ Pair Programming -‐ Dokumentation
#
Lösung
$Entwurf
![Page 3: 8.)Version)Control)with)Git - uni-tuebingen.deps.informatik.uni-tuebingen.de/.../ss17/se/08-vcs-git.pdf · 2017-06-15 · Software)Engineering Begriffe 8! Repository)! Änderungsgeschichteund)](https://reader033.vdocument.in/reader033/viewer/2022060310/5f0a8ce67e708231d42c2f81/html5/thumbnails/3.jpg)
Software Engineering3
Online verfügbar unter: https://git-‐scm.com/book/en/v2Onlinetutorials auf: https://try.github.io und http://gitreal.codeschool.com/ Außerdem: Übungsblätter zu git sind auf der Vorlesungsseite zu finden
Literaturempfehlung
![Page 4: 8.)Version)Control)with)Git - uni-tuebingen.deps.informatik.uni-tuebingen.de/.../ss17/se/08-vcs-git.pdf · 2017-06-15 · Software)Engineering Begriffe 8! Repository)! Änderungsgeschichteund)](https://reader033.vdocument.in/reader033/viewer/2022060310/5f0a8ce67e708231d42c2f81/html5/thumbnails/4.jpg)
Software Engineering
Versionskontrolle
![Page 5: 8.)Version)Control)with)Git - uni-tuebingen.deps.informatik.uni-tuebingen.de/.../ss17/se/08-vcs-git.pdf · 2017-06-15 · Software)Engineering Begriffe 8! Repository)! Änderungsgeschichteund)](https://reader033.vdocument.in/reader033/viewer/2022060310/5f0a8ce67e708231d42c2f81/html5/thumbnails/5.jpg)
Software Engineering
Was ist Versionskontrolle?
5
} Ein Versionskontrollsystem (VCS) speichert } ... den Inhalt aller Dateien eines Projektes } ... die gesamte Änderungsgeschichte eines Projektes
} Wer hat wann und warum, welche Dateien wie geändert?
![Page 6: 8.)Version)Control)with)Git - uni-tuebingen.deps.informatik.uni-tuebingen.de/.../ss17/se/08-vcs-git.pdf · 2017-06-15 · Software)Engineering Begriffe 8! Repository)! Änderungsgeschichteund)](https://reader033.vdocument.in/reader033/viewer/2022060310/5f0a8ce67e708231d42c2f81/html5/thumbnails/6.jpg)
Software Engineering
Wozu Versionskontrolle?
6
} Zurücksetzen des Projektes auf einen früheren Stand } Dokumentation der Projektgeschichte und der Beiträge verschiedener Entwickler
} Parallele Entwicklung an mehreren Entwicklungszweigen } Koordination der Arbeit verschiedener Entwickler
![Page 7: 8.)Version)Control)with)Git - uni-tuebingen.deps.informatik.uni-tuebingen.de/.../ss17/se/08-vcs-git.pdf · 2017-06-15 · Software)Engineering Begriffe 8! Repository)! Änderungsgeschichteund)](https://reader033.vdocument.in/reader033/viewer/2022060310/5f0a8ce67e708231d42c2f81/html5/thumbnails/7.jpg)
Software Engineering
Begriffe
7
} Repository } Änderungsgeschichte und Dateiinhalte für alle Versionen
} Arbeitskopie } Kopie aller Dateien einer Version
} Status } Zusammengefasster Unterschied zwischen der Working Copy und dem Repository
} Diff } Unterschiede der Dateien
zwischen Repository und Arbeitskopie oder anderer Version
} Checkout } Dateiinhalte einer Version
aus Repository in Working Copy kopieren
} Commit } Derzeitigen Stand der
Working Copy als neue Version in das Repository übernehmen
![Page 8: 8.)Version)Control)with)Git - uni-tuebingen.deps.informatik.uni-tuebingen.de/.../ss17/se/08-vcs-git.pdf · 2017-06-15 · Software)Engineering Begriffe 8! Repository)! Änderungsgeschichteund)](https://reader033.vdocument.in/reader033/viewer/2022060310/5f0a8ce67e708231d42c2f81/html5/thumbnails/8.jpg)
Software Engineering
Begriffe
8
} Repository } Änderungsgeschichte und Dateiinhalte für alle Versionen
} Arbeitskopie } Kopie aller Dateien einer Version
} Status } Zusammengefasster Unterschied zwischen der Working Copy und dem Repository
} Diff } Unterschiede der Dateien
zwischen Repository und Arbeitskopie oder anderer Version
} Checkout } Dateiinhalte einer Version
aus Repository in Working Copy kopieren
} Commit } Derzeitigen Stand der
Working Copy als neue Version in das Repository übernehmen
![Page 9: 8.)Version)Control)with)Git - uni-tuebingen.deps.informatik.uni-tuebingen.de/.../ss17/se/08-vcs-git.pdf · 2017-06-15 · Software)Engineering Begriffe 8! Repository)! Änderungsgeschichteund)](https://reader033.vdocument.in/reader033/viewer/2022060310/5f0a8ce67e708231d42c2f81/html5/thumbnails/9.jpg)
Software Engineering
Begriffe
9
} Repository } Änderungsgeschichte und Dateiinhalte für alle Versionen
} Arbeitskopie } Kopie aller Dateien einer Version
} Status } Zusammengefasster Unterschied zwischen der Working Copy und dem Repository
} Diff } Unterschiede der Dateien
zwischen Repository und Arbeitskopie oder anderer Version
} Checkout } Dateiinhalte einer Version
aus Repository in Working Copy kopieren
} Commit } Derzeitigen Stand der
Working Copy als neue Version in das Repository übernehmen
![Page 10: 8.)Version)Control)with)Git - uni-tuebingen.deps.informatik.uni-tuebingen.de/.../ss17/se/08-vcs-git.pdf · 2017-06-15 · Software)Engineering Begriffe 8! Repository)! Änderungsgeschichteund)](https://reader033.vdocument.in/reader033/viewer/2022060310/5f0a8ce67e708231d42c2f81/html5/thumbnails/10.jpg)
Software Engineering
Wo ist das Repository gespeichert?
10
} Lokale Versionskontrollsysteme
Local Computer
RepositoryWorking Copy
File 1
File 2
Version 1
Version 2
Version 3
![Page 11: 8.)Version)Control)with)Git - uni-tuebingen.deps.informatik.uni-tuebingen.de/.../ss17/se/08-vcs-git.pdf · 2017-06-15 · Software)Engineering Begriffe 8! Repository)! Änderungsgeschichteund)](https://reader033.vdocument.in/reader033/viewer/2022060310/5f0a8ce67e708231d42c2f81/html5/thumbnails/11.jpg)
Software Engineering
Wo ist das Repository gespeichert?
11
Central VCS Server
Repository
Computer A
Working Copy
File 1
File 2
Version 1
Version 2
Version 3
Computer B
Working Copy
File 1
File 2
Computer C
Working Copy
File 1
File 2
} Zentrale Versionskontrollsysteme
![Page 12: 8.)Version)Control)with)Git - uni-tuebingen.deps.informatik.uni-tuebingen.de/.../ss17/se/08-vcs-git.pdf · 2017-06-15 · Software)Engineering Begriffe 8! Repository)! Änderungsgeschichteund)](https://reader033.vdocument.in/reader033/viewer/2022060310/5f0a8ce67e708231d42c2f81/html5/thumbnails/12.jpg)
Software Engineering
Wo ist das Repository gespeichert?
12
} Verteilte Versionskontrollsysteme
Computer A
Repository
Working Copy
File 1
Version 3...
...
Computer B
Repository
Working Copy
File 1
Version 3...
...
Server Computer
Repository
Version 3...
![Page 13: 8.)Version)Control)with)Git - uni-tuebingen.deps.informatik.uni-tuebingen.de/.../ss17/se/08-vcs-git.pdf · 2017-06-15 · Software)Engineering Begriffe 8! Repository)! Änderungsgeschichteund)](https://reader033.vdocument.in/reader033/viewer/2022060310/5f0a8ce67e708231d42c2f81/html5/thumbnails/13.jpg)
Software Engineering
Begriffe
13
} Repository } Änderungsgeschichte und Dateiinhalte für alle Versionen
} Arbeitskopie } Kopie aller Dateien einer Version
} Status } Zusammengefasster Unterschied zwischen der Working Copy und dem Repository
} Diff } Unterschiede der Dateien
zwischen Repository und Arbeitskopie oder anderer Version
} Checkout } Dateiinhalte einer Version
aus Repository in Working Copy kopieren
} Commit } Derzeitigen Stand der
Working Copy als neue Version in das Repository übernehmen
![Page 14: 8.)Version)Control)with)Git - uni-tuebingen.deps.informatik.uni-tuebingen.de/.../ss17/se/08-vcs-git.pdf · 2017-06-15 · Software)Engineering Begriffe 8! Repository)! Änderungsgeschichteund)](https://reader033.vdocument.in/reader033/viewer/2022060310/5f0a8ce67e708231d42c2f81/html5/thumbnails/14.jpg)
Software Engineering
Begriffe
14
} Repository } Änderungsgeschichte und Dateiinhalte für alle Versionen
} Arbeitskopie } Kopie aller Dateien einer Version
} Status } Zusammengefasster Unterschied zwischen der Working Copy und dem Repository
} Diff } Unterschiede der Dateien
zwischen Repository und Arbeitskopie oder anderer Version
} Checkout } Dateiinhalte einer Version
aus Repository in Working Copy kopieren
} Commit } Derzeitigen Stand der
Working Copy als neue Version in das Repository übernehmen
![Page 15: 8.)Version)Control)with)Git - uni-tuebingen.deps.informatik.uni-tuebingen.de/.../ss17/se/08-vcs-git.pdf · 2017-06-15 · Software)Engineering Begriffe 8! Repository)! Änderungsgeschichteund)](https://reader033.vdocument.in/reader033/viewer/2022060310/5f0a8ce67e708231d42c2f81/html5/thumbnails/15.jpg)
Software Engineering
Diffs
15
answer = 7 factor = 3 while (answer < 60) { answer *= factor factor += 1 } vorher
answer = 7 factor = 2 while (answer < 40) { answer *= factor factor += 1 } nachher
answer = 7 -factor = 3 -while (answer < 60) { +factor = 2 +while (answer < 40) { answer *= factor factor += 1 } diff
![Page 16: 8.)Version)Control)with)Git - uni-tuebingen.deps.informatik.uni-tuebingen.de/.../ss17/se/08-vcs-git.pdf · 2017-06-15 · Software)Engineering Begriffe 8! Repository)! Änderungsgeschichteund)](https://reader033.vdocument.in/reader033/viewer/2022060310/5f0a8ce67e708231d42c2f81/html5/thumbnails/16.jpg)
Software Engineering
Was ist im Repository gespeichert?
16
} Diff basierte Versionskontrollsysteme
Version 1
File A
Veränderung über die Zeit
File B
File C
Version 2
Δ1
Version 3
Δ1 Δ2
![Page 17: 8.)Version)Control)with)Git - uni-tuebingen.deps.informatik.uni-tuebingen.de/.../ss17/se/08-vcs-git.pdf · 2017-06-15 · Software)Engineering Begriffe 8! Repository)! Änderungsgeschichteund)](https://reader033.vdocument.in/reader033/viewer/2022060310/5f0a8ce67e708231d42c2f81/html5/thumbnails/17.jpg)
Software Engineering
Was ist im Repository gespeichert?
17
} Snapshot basierte Versionskontrollsysteme
Version 1
File A
Veränderung über die Zeit
File B
File C
Version 2
A1
C1
B
Version 3
C2
B
A1
![Page 18: 8.)Version)Control)with)Git - uni-tuebingen.deps.informatik.uni-tuebingen.de/.../ss17/se/08-vcs-git.pdf · 2017-06-15 · Software)Engineering Begriffe 8! Repository)! Änderungsgeschichteund)](https://reader033.vdocument.in/reader033/viewer/2022060310/5f0a8ce67e708231d42c2f81/html5/thumbnails/18.jpg)
Software Engineering
Begriffe
18
} Repository } Änderungsgeschichte und Dateiinhalte für alle Versionen
} Arbeitskopie } Kopie aller Dateien einer Version
} Status } Zusammengefasster Unterschied zwischen der Working Copy und dem Repository
} Diff } Unterschiede der Dateien
zwischen Repository und Arbeitskopie oder anderer Version
} Checkout } Dateiinhalte einer Version
aus Repository in Working Copy kopieren
} Commit } Derzeitigen Stand der
Working Copy als neue Version in das Repository übernehmen
![Page 19: 8.)Version)Control)with)Git - uni-tuebingen.deps.informatik.uni-tuebingen.de/.../ss17/se/08-vcs-git.pdf · 2017-06-15 · Software)Engineering Begriffe 8! Repository)! Änderungsgeschichteund)](https://reader033.vdocument.in/reader033/viewer/2022060310/5f0a8ce67e708231d42c2f81/html5/thumbnails/19.jpg)
Software Engineering
Begriffe
19
} Repository } Änderungsgeschichte und Dateiinhalte für alle Versionen
} Arbeitskopie } Kopie aller Dateien einer Version
} Status } Zusammengefasster Unterschied zwischen der Working Copy und dem Repository
} Diff } Unterschiede der Dateien
zwischen Repository und Arbeitskopie oder anderer Version
} Checkout } Dateiinhalte einer Version
aus Repository in Working Copy kopieren
} Commit } Derzeitigen Stand der
Working Copy als neue Version in das Repository übernehmen
![Page 20: 8.)Version)Control)with)Git - uni-tuebingen.deps.informatik.uni-tuebingen.de/.../ss17/se/08-vcs-git.pdf · 2017-06-15 · Software)Engineering Begriffe 8! Repository)! Änderungsgeschichteund)](https://reader033.vdocument.in/reader033/viewer/2022060310/5f0a8ce67e708231d42c2f81/html5/thumbnails/20.jpg)
Software Engineering
git
![Page 21: 8.)Version)Control)with)Git - uni-tuebingen.deps.informatik.uni-tuebingen.de/.../ss17/se/08-vcs-git.pdf · 2017-06-15 · Software)Engineering Begriffe 8! Repository)! Änderungsgeschichteund)](https://reader033.vdocument.in/reader033/viewer/2022060310/5f0a8ce67e708231d42c2f81/html5/thumbnails/21.jpg)
Software Engineering
Was ist git?
21
} Verteiltes Versionskontrollsystem } Ursprünglich von Linus Torvalds zur Versionskontrolle des Linux Kernels entwickelt
} Heute weit verbreitet in Open Source, als auch zur proprietären Entwicklung
![Page 22: 8.)Version)Control)with)Git - uni-tuebingen.deps.informatik.uni-tuebingen.de/.../ss17/se/08-vcs-git.pdf · 2017-06-15 · Software)Engineering Begriffe 8! Repository)! Änderungsgeschichteund)](https://reader033.vdocument.in/reader033/viewer/2022060310/5f0a8ce67e708231d42c2f81/html5/thumbnails/22.jpg)
Software Engineering
Wie funktioniert git?
22
} Verteilt } Snapshot-‐basiert } Effiziente Speicherung durch Hash-‐Adressierung } Index } Viele Kommandozeilenbefehle
![Page 23: 8.)Version)Control)with)Git - uni-tuebingen.deps.informatik.uni-tuebingen.de/.../ss17/se/08-vcs-git.pdf · 2017-06-15 · Software)Engineering Begriffe 8! Repository)! Änderungsgeschichteund)](https://reader033.vdocument.in/reader033/viewer/2022060310/5f0a8ce67e708231d42c2f81/html5/thumbnails/23.jpg)
Software Engineering
Drei Schritte in Git
23
} Git unterscheidet zwischen Working Copy, Staging Area und Repository
Computer
RepositoryWorking Copy Staging Area
Copy project (checkout)
Stage changes (add) Confirm (commit)
![Page 24: 8.)Version)Control)with)Git - uni-tuebingen.deps.informatik.uni-tuebingen.de/.../ss17/se/08-vcs-git.pdf · 2017-06-15 · Software)Engineering Begriffe 8! Repository)! Änderungsgeschichteund)](https://reader033.vdocument.in/reader033/viewer/2022060310/5f0a8ce67e708231d42c2f81/html5/thumbnails/24.jpg)
Software Engineering24
~ mkdir my-prog
![Page 25: 8.)Version)Control)with)Git - uni-tuebingen.deps.informatik.uni-tuebingen.de/.../ss17/se/08-vcs-git.pdf · 2017-06-15 · Software)Engineering Begriffe 8! Repository)! Änderungsgeschichteund)](https://reader033.vdocument.in/reader033/viewer/2022060310/5f0a8ce67e708231d42c2f81/html5/thumbnails/25.jpg)
Software Engineering25
~ mkdir my-prog ~
% my-prog
![Page 26: 8.)Version)Control)with)Git - uni-tuebingen.deps.informatik.uni-tuebingen.de/.../ss17/se/08-vcs-git.pdf · 2017-06-15 · Software)Engineering Begriffe 8! Repository)! Änderungsgeschichteund)](https://reader033.vdocument.in/reader033/viewer/2022060310/5f0a8ce67e708231d42c2f81/html5/thumbnails/26.jpg)
Software Engineering26
~ mkdir my-prog ~ ~ cd my-prog
% my-prog
![Page 27: 8.)Version)Control)with)Git - uni-tuebingen.deps.informatik.uni-tuebingen.de/.../ss17/se/08-vcs-git.pdf · 2017-06-15 · Software)Engineering Begriffe 8! Repository)! Änderungsgeschichteund)](https://reader033.vdocument.in/reader033/viewer/2022060310/5f0a8ce67e708231d42c2f81/html5/thumbnails/27.jpg)
Software Engineering27
~ ~ cd my-prog ~/my-prog
% my-prog
![Page 28: 8.)Version)Control)with)Git - uni-tuebingen.deps.informatik.uni-tuebingen.de/.../ss17/se/08-vcs-git.pdf · 2017-06-15 · Software)Engineering Begriffe 8! Repository)! Änderungsgeschichteund)](https://reader033.vdocument.in/reader033/viewer/2022060310/5f0a8ce67e708231d42c2f81/html5/thumbnails/28.jpg)
Software Engineering28
~ ~ cd my-prog ~/my-prog git init
% my-prog
![Page 29: 8.)Version)Control)with)Git - uni-tuebingen.deps.informatik.uni-tuebingen.de/.../ss17/se/08-vcs-git.pdf · 2017-06-15 · Software)Engineering Begriffe 8! Repository)! Änderungsgeschichteund)](https://reader033.vdocument.in/reader033/viewer/2022060310/5f0a8ce67e708231d42c2f81/html5/thumbnails/29.jpg)
Software Engineering29
~/my-prog git init Initialized empty Git repository in ~/my-prog/.git/
% my-prog % .git
![Page 30: 8.)Version)Control)with)Git - uni-tuebingen.deps.informatik.uni-tuebingen.de/.../ss17/se/08-vcs-git.pdf · 2017-06-15 · Software)Engineering Begriffe 8! Repository)! Änderungsgeschichteund)](https://reader033.vdocument.in/reader033/viewer/2022060310/5f0a8ce67e708231d42c2f81/html5/thumbnails/30.jpg)
Software Engineering30
~/my-prog git init Initialized empty Git repository in ~/my-prog/.git/
% my-prog % .git & Hello.java
![Page 31: 8.)Version)Control)with)Git - uni-tuebingen.deps.informatik.uni-tuebingen.de/.../ss17/se/08-vcs-git.pdf · 2017-06-15 · Software)Engineering Begriffe 8! Repository)! Änderungsgeschichteund)](https://reader033.vdocument.in/reader033/viewer/2022060310/5f0a8ce67e708231d42c2f81/html5/thumbnails/31.jpg)
Software Engineering31
% my-prog % .git & Hello.java
Initialized empty Git repository in ~/my-prog/.git/ ~/my-prog git add Hello.java
![Page 32: 8.)Version)Control)with)Git - uni-tuebingen.deps.informatik.uni-tuebingen.de/.../ss17/se/08-vcs-git.pdf · 2017-06-15 · Software)Engineering Begriffe 8! Repository)! Änderungsgeschichteund)](https://reader033.vdocument.in/reader033/viewer/2022060310/5f0a8ce67e708231d42c2f81/html5/thumbnails/32.jpg)
Software Engineering32
% my-prog % .git & Hello.java
& Hello.java
~ cd my-prog ~/my-prog git add Hello.java ~/my-prog
index
![Page 33: 8.)Version)Control)with)Git - uni-tuebingen.deps.informatik.uni-tuebingen.de/.../ss17/se/08-vcs-git.pdf · 2017-06-15 · Software)Engineering Begriffe 8! Repository)! Änderungsgeschichteund)](https://reader033.vdocument.in/reader033/viewer/2022060310/5f0a8ce67e708231d42c2f81/html5/thumbnails/33.jpg)
Software Engineering33
% my-prog % .git & Hello.java
& Hello.java
~ ~ cd my-prog ~/my-prog git add Hello.java ~/my-prog git commit -m "Add hello"
index
![Page 34: 8.)Version)Control)with)Git - uni-tuebingen.deps.informatik.uni-tuebingen.de/.../ss17/se/08-vcs-git.pdf · 2017-06-15 · Software)Engineering Begriffe 8! Repository)! Änderungsgeschichteund)](https://reader033.vdocument.in/reader033/viewer/2022060310/5f0a8ce67e708231d42c2f81/html5/thumbnails/34.jpg)
Software Engineering34
% my-prog % .git & Hello.java
9ad66d3
& Hello.java
HEAD master
treeindex
~/my-prog git commit -m "Add hello" [master 9ad66d3] Add hello 1 file changed, 5 insertions (+)
![Page 35: 8.)Version)Control)with)Git - uni-tuebingen.deps.informatik.uni-tuebingen.de/.../ss17/se/08-vcs-git.pdf · 2017-06-15 · Software)Engineering Begriffe 8! Repository)! Änderungsgeschichteund)](https://reader033.vdocument.in/reader033/viewer/2022060310/5f0a8ce67e708231d42c2f81/html5/thumbnails/35.jpg)
Software Engineering35
9ad66d3
& Hello.java
treeindex
~/my-prog git commit -m "Add hello" [master 9ad66d3] Add hello 1 file changed, 5 insertions (+)
% my-prog % .git & Hello.java % lib & Util.java
HEAD master
![Page 36: 8.)Version)Control)with)Git - uni-tuebingen.deps.informatik.uni-tuebingen.de/.../ss17/se/08-vcs-git.pdf · 2017-06-15 · Software)Engineering Begriffe 8! Repository)! Änderungsgeschichteund)](https://reader033.vdocument.in/reader033/viewer/2022060310/5f0a8ce67e708231d42c2f81/html5/thumbnails/36.jpg)
Software Engineering36
% my-prog % .git & Hello.java % lib & Util.java
9ad66d3
& Hello.java
tree
~/my-prog git add lib/Util.java
index
HEAD master
![Page 37: 8.)Version)Control)with)Git - uni-tuebingen.deps.informatik.uni-tuebingen.de/.../ss17/se/08-vcs-git.pdf · 2017-06-15 · Software)Engineering Begriffe 8! Repository)! Änderungsgeschichteund)](https://reader033.vdocument.in/reader033/viewer/2022060310/5f0a8ce67e708231d42c2f81/html5/thumbnails/37.jpg)
Software Engineering37
% my-prog % .git & Hello.java % lib & Util.java
9ad66d3
& Hello.java & Hello.java % lib & Util.java
tree index
~/my-prog git add lib/Util.java ~/my-prog
HEAD master
![Page 38: 8.)Version)Control)with)Git - uni-tuebingen.deps.informatik.uni-tuebingen.de/.../ss17/se/08-vcs-git.pdf · 2017-06-15 · Software)Engineering Begriffe 8! Repository)! Änderungsgeschichteund)](https://reader033.vdocument.in/reader033/viewer/2022060310/5f0a8ce67e708231d42c2f81/html5/thumbnails/38.jpg)
Software Engineering38
% my-prog % .git & Hello.java % lib & Util.java
9ad66d3
& Hello.java & Hello.java % lib & Util.java
tree index
~/my-prog git add lib/Util.java ~/my-prog git commit -m "Add util"
HEAD master
![Page 39: 8.)Version)Control)with)Git - uni-tuebingen.deps.informatik.uni-tuebingen.de/.../ss17/se/08-vcs-git.pdf · 2017-06-15 · Software)Engineering Begriffe 8! Repository)! Änderungsgeschichteund)](https://reader033.vdocument.in/reader033/viewer/2022060310/5f0a8ce67e708231d42c2f81/html5/thumbnails/39.jpg)
Software Engineering39
% my-prog % .git & Hello.java % lib & Util.java
9ad66d3
& Hello.java & Hello.java % lib & Util.java
f146864parent
tree treeindex
~/my-prog git commit -m "Add util" [master f146864] Add util 1 file changed, 3 insertions (+)
HEAD master
![Page 40: 8.)Version)Control)with)Git - uni-tuebingen.deps.informatik.uni-tuebingen.de/.../ss17/se/08-vcs-git.pdf · 2017-06-15 · Software)Engineering Begriffe 8! Repository)! Änderungsgeschichteund)](https://reader033.vdocument.in/reader033/viewer/2022060310/5f0a8ce67e708231d42c2f81/html5/thumbnails/40.jpg)
Software Engineering
~/my-prog git commit -m "Add util" [master f146864] Add util 1 file changed, 3 insertions (+)40
% my-prog % .git & Hello.java % lib & Util.java
9ad66d3
& Hello.java & Hello.java % lib & Util.java
f146864parent
tree treeindex
HEAD master
![Page 41: 8.)Version)Control)with)Git - uni-tuebingen.deps.informatik.uni-tuebingen.de/.../ss17/se/08-vcs-git.pdf · 2017-06-15 · Software)Engineering Begriffe 8! Repository)! Änderungsgeschichteund)](https://reader033.vdocument.in/reader033/viewer/2022060310/5f0a8ce67e708231d42c2f81/html5/thumbnails/41.jpg)
Software Engineering41
% my-prog % .git & Hello.java % lib & Util.java
9ad66d3
& Hello.java & Hello.java % lib & Util.java
f146864parent
tree treeindex
~/my-prog git add Hello.java
HEAD master
![Page 42: 8.)Version)Control)with)Git - uni-tuebingen.deps.informatik.uni-tuebingen.de/.../ss17/se/08-vcs-git.pdf · 2017-06-15 · Software)Engineering Begriffe 8! Repository)! Änderungsgeschichteund)](https://reader033.vdocument.in/reader033/viewer/2022060310/5f0a8ce67e708231d42c2f81/html5/thumbnails/42.jpg)
Software Engineering42
% my-prog % .git & Hello.java % lib & Util.java
9ad66d3
& Hello.java & Hello.java % lib & Util.java
& Hello.java % lib & Util.java
f146864parent
tree tree index
~/my-prog git add Hello.java ~/my-prog
HEAD master
![Page 43: 8.)Version)Control)with)Git - uni-tuebingen.deps.informatik.uni-tuebingen.de/.../ss17/se/08-vcs-git.pdf · 2017-06-15 · Software)Engineering Begriffe 8! Repository)! Änderungsgeschichteund)](https://reader033.vdocument.in/reader033/viewer/2022060310/5f0a8ce67e708231d42c2f81/html5/thumbnails/43.jpg)
Software Engineering43
% my-prog % .git & Hello.java % lib & Util.java
9ad66d3
& Hello.java & Hello.java % lib & Util.java
& Hello.java % lib & Util.java
f146864parent
tree tree index
~/my-prog git add Hello.java ~/my-prog git commit -m "Add bye"
HEAD master
![Page 44: 8.)Version)Control)with)Git - uni-tuebingen.deps.informatik.uni-tuebingen.de/.../ss17/se/08-vcs-git.pdf · 2017-06-15 · Software)Engineering Begriffe 8! Repository)! Änderungsgeschichteund)](https://reader033.vdocument.in/reader033/viewer/2022060310/5f0a8ce67e708231d42c2f81/html5/thumbnails/44.jpg)
Software Engineering44
~/my-prog git commit -m "Add bye" [master 153b94c] Add bye 1 file changed, 1 insertions (+)
% my-prog % .git & Hello.java % lib & Util.java
9ad66d3
& Hello.java & Hello.java % lib & Util.java
& Hello.java % lib & Util.java
f146864 153b94cparent parent
tree tree treeindex
HEAD master
![Page 45: 8.)Version)Control)with)Git - uni-tuebingen.deps.informatik.uni-tuebingen.de/.../ss17/se/08-vcs-git.pdf · 2017-06-15 · Software)Engineering Begriffe 8! Repository)! Änderungsgeschichteund)](https://reader033.vdocument.in/reader033/viewer/2022060310/5f0a8ce67e708231d42c2f81/html5/thumbnails/45.jpg)
Software Engineering
Demo
(init, status, diff, add (-‐p), diff -‐-‐ staged, checkout, commit, log)
![Page 46: 8.)Version)Control)with)Git - uni-tuebingen.deps.informatik.uni-tuebingen.de/.../ss17/se/08-vcs-git.pdf · 2017-06-15 · Software)Engineering Begriffe 8! Repository)! Änderungsgeschichteund)](https://reader033.vdocument.in/reader033/viewer/2022060310/5f0a8ce67e708231d42c2f81/html5/thumbnails/46.jpg)
Software Engineering
Die wichtigsten Befehle (1 / 4)
46
} git helpListe wichtiger Befehle
} git help commandHilfe zu einzelnen Befehlen
} git initNeues Repository initialisieren
} git addArbeitskopie → Index
} git checkoutIndex → Arbeitskopie
} git commitIndex → Repository
![Page 47: 8.)Version)Control)with)Git - uni-tuebingen.deps.informatik.uni-tuebingen.de/.../ss17/se/08-vcs-git.pdf · 2017-06-15 · Software)Engineering Begriffe 8! Repository)! Änderungsgeschichteund)](https://reader033.vdocument.in/reader033/viewer/2022060310/5f0a8ce67e708231d42c2f81/html5/thumbnails/47.jpg)
Software Engineering
Die wichtigsten Befehle (2 / 4)
47
} git statusInformationen zur Arbeitskopieund HEAD anzeigen
} git show commitInformationen zu Commit zeigen
} git reflogEntwicklung von HEAD zeigen
} git diffArbeitskopie vs. Index
} git diff -‐-‐stagedIndex vs. Head
} git logÄnderungsgeschichte zeigen
![Page 48: 8.)Version)Control)with)Git - uni-tuebingen.deps.informatik.uni-tuebingen.de/.../ss17/se/08-vcs-git.pdf · 2017-06-15 · Software)Engineering Begriffe 8! Repository)! Änderungsgeschichteund)](https://reader033.vdocument.in/reader033/viewer/2022060310/5f0a8ce67e708231d42c2f81/html5/thumbnails/48.jpg)
Software Engineering
Branches & Merging
![Page 49: 8.)Version)Control)with)Git - uni-tuebingen.deps.informatik.uni-tuebingen.de/.../ss17/se/08-vcs-git.pdf · 2017-06-15 · Software)Engineering Begriffe 8! Repository)! Änderungsgeschichteund)](https://reader033.vdocument.in/reader033/viewer/2022060310/5f0a8ce67e708231d42c2f81/html5/thumbnails/49.jpg)
Software Engineering49
~/my-prog
master
543
HEAD
![Page 50: 8.)Version)Control)with)Git - uni-tuebingen.deps.informatik.uni-tuebingen.de/.../ss17/se/08-vcs-git.pdf · 2017-06-15 · Software)Engineering Begriffe 8! Repository)! Änderungsgeschichteund)](https://reader033.vdocument.in/reader033/viewer/2022060310/5f0a8ce67e708231d42c2f81/html5/thumbnails/50.jpg)
Software Engineering50
~/my-prog git add ~/my-prog
master
543
HEAD
![Page 51: 8.)Version)Control)with)Git - uni-tuebingen.deps.informatik.uni-tuebingen.de/.../ss17/se/08-vcs-git.pdf · 2017-06-15 · Software)Engineering Begriffe 8! Repository)! Änderungsgeschichteund)](https://reader033.vdocument.in/reader033/viewer/2022060310/5f0a8ce67e708231d42c2f81/html5/thumbnails/51.jpg)
Software Engineering51
~/my-prog git add ~/my-prog git commit
~/my-prog
master
6f5parent
543
HEAD
![Page 52: 8.)Version)Control)with)Git - uni-tuebingen.deps.informatik.uni-tuebingen.de/.../ss17/se/08-vcs-git.pdf · 2017-06-15 · Software)Engineering Begriffe 8! Repository)! Änderungsgeschichteund)](https://reader033.vdocument.in/reader033/viewer/2022060310/5f0a8ce67e708231d42c2f81/html5/thumbnails/52.jpg)
Software Engineering52
~/my-prog git add ~/my-prog git commit ~/my-prog git branch experiment
~/my-prog
master
6f5parent
543
experiment
HEAD
![Page 53: 8.)Version)Control)with)Git - uni-tuebingen.deps.informatik.uni-tuebingen.de/.../ss17/se/08-vcs-git.pdf · 2017-06-15 · Software)Engineering Begriffe 8! Repository)! Änderungsgeschichteund)](https://reader033.vdocument.in/reader033/viewer/2022060310/5f0a8ce67e708231d42c2f81/html5/thumbnails/53.jpg)
Software Engineering53
~/my-prog git add ~/my-prog git commit ~/my-prog git branch experiment
~/my-prog git checkout experiment
master
6f5parent
543
experiment
HEAD
![Page 54: 8.)Version)Control)with)Git - uni-tuebingen.deps.informatik.uni-tuebingen.de/.../ss17/se/08-vcs-git.pdf · 2017-06-15 · Software)Engineering Begriffe 8! Repository)! Änderungsgeschichteund)](https://reader033.vdocument.in/reader033/viewer/2022060310/5f0a8ce67e708231d42c2f81/html5/thumbnails/54.jpg)
Software Engineering54
~/my-prog git checkout experiment ~/my-prog
HEAD
master
6f5parent
543
experiment
![Page 55: 8.)Version)Control)with)Git - uni-tuebingen.deps.informatik.uni-tuebingen.de/.../ss17/se/08-vcs-git.pdf · 2017-06-15 · Software)Engineering Begriffe 8! Repository)! Änderungsgeschichteund)](https://reader033.vdocument.in/reader033/viewer/2022060310/5f0a8ce67e708231d42c2f81/html5/thumbnails/55.jpg)
Software Engineering55
~/my-prog git checkout experiment ~/my-prog git add ~/my-prog
HEAD
master
6f5parent
543
experiment
![Page 56: 8.)Version)Control)with)Git - uni-tuebingen.deps.informatik.uni-tuebingen.de/.../ss17/se/08-vcs-git.pdf · 2017-06-15 · Software)Engineering Begriffe 8! Repository)! Änderungsgeschichteund)](https://reader033.vdocument.in/reader033/viewer/2022060310/5f0a8ce67e708231d42c2f81/html5/thumbnails/56.jpg)
Software Engineering56
~/my-prog git checkout experiment ~/my-prog git add ~/my-prog git commit ~/my-prog
HEAD
master
parent
6f5parent
543
experiment
b43
![Page 57: 8.)Version)Control)with)Git - uni-tuebingen.deps.informatik.uni-tuebingen.de/.../ss17/se/08-vcs-git.pdf · 2017-06-15 · Software)Engineering Begriffe 8! Repository)! Änderungsgeschichteund)](https://reader033.vdocument.in/reader033/viewer/2022060310/5f0a8ce67e708231d42c2f81/html5/thumbnails/57.jpg)
Software Engineering57
~/my-prog git checkout experiment ~/my-prog git add ~/my-prog git commit
~/my-prog git add ~/my-prog
HEAD
master
parent
6f5parent
543
experiment
b43
![Page 58: 8.)Version)Control)with)Git - uni-tuebingen.deps.informatik.uni-tuebingen.de/.../ss17/se/08-vcs-git.pdf · 2017-06-15 · Software)Engineering Begriffe 8! Repository)! Änderungsgeschichteund)](https://reader033.vdocument.in/reader033/viewer/2022060310/5f0a8ce67e708231d42c2f81/html5/thumbnails/58.jpg)
Software Engineering58
~/my-prog git checkout experiment ~/my-prog git add ~/my-prog git commit
~/my-prog git add ~/my-prog git commit ~/my-prog
HEAD
master
parent
parent
6f5parent
543
experiment
aa4b43
![Page 59: 8.)Version)Control)with)Git - uni-tuebingen.deps.informatik.uni-tuebingen.de/.../ss17/se/08-vcs-git.pdf · 2017-06-15 · Software)Engineering Begriffe 8! Repository)! Änderungsgeschichteund)](https://reader033.vdocument.in/reader033/viewer/2022060310/5f0a8ce67e708231d42c2f81/html5/thumbnails/59.jpg)
Software Engineering59
~/my-prog git checkout experiment ~/my-prog git add ~/my-prog git commit
~/my-prog git add ~/my-prog git commit ~/my-prog git checkout master
HEAD
master
parent
parent
6f5parent
543
experiment
aa4b43
![Page 60: 8.)Version)Control)with)Git - uni-tuebingen.deps.informatik.uni-tuebingen.de/.../ss17/se/08-vcs-git.pdf · 2017-06-15 · Software)Engineering Begriffe 8! Repository)! Änderungsgeschichteund)](https://reader033.vdocument.in/reader033/viewer/2022060310/5f0a8ce67e708231d42c2f81/html5/thumbnails/60.jpg)
Software Engineering60
~/my-prog git checkout master ~/my-prog
HEADmaster
parent
parent
6f5parent
543
experiment
aa4b43
![Page 61: 8.)Version)Control)with)Git - uni-tuebingen.deps.informatik.uni-tuebingen.de/.../ss17/se/08-vcs-git.pdf · 2017-06-15 · Software)Engineering Begriffe 8! Repository)! Änderungsgeschichteund)](https://reader033.vdocument.in/reader033/viewer/2022060310/5f0a8ce67e708231d42c2f81/html5/thumbnails/61.jpg)
Software Engineering61
~/my-prog git checkout master
~/my-prog git add ~/my-prog
HEADmaster
parent
parent
6f5parent
543
experiment
aa4b43
![Page 62: 8.)Version)Control)with)Git - uni-tuebingen.deps.informatik.uni-tuebingen.de/.../ss17/se/08-vcs-git.pdf · 2017-06-15 · Software)Engineering Begriffe 8! Repository)! Änderungsgeschichteund)](https://reader033.vdocument.in/reader033/viewer/2022060310/5f0a8ce67e708231d42c2f81/html5/thumbnails/62.jpg)
Software Engineering62
~/my-prog git checkout master
~/my-prog git add
~/my-prog git commit ~/my-prog
HEADmaster
parent
c85
parent
6f5parent
543
experiment
aa4b43
parent
![Page 63: 8.)Version)Control)with)Git - uni-tuebingen.deps.informatik.uni-tuebingen.de/.../ss17/se/08-vcs-git.pdf · 2017-06-15 · Software)Engineering Begriffe 8! Repository)! Änderungsgeschichteund)](https://reader033.vdocument.in/reader033/viewer/2022060310/5f0a8ce67e708231d42c2f81/html5/thumbnails/63.jpg)
Software Engineering63
~/my-prog git checkout master
~/my-prog git add
~/my-prog git commit
~/my-prog git add ~/my-prog
HEADmaster
parent
c85
parent
6f5parent
543
experiment
aa4b43
parent
![Page 64: 8.)Version)Control)with)Git - uni-tuebingen.deps.informatik.uni-tuebingen.de/.../ss17/se/08-vcs-git.pdf · 2017-06-15 · Software)Engineering Begriffe 8! Repository)! Änderungsgeschichteund)](https://reader033.vdocument.in/reader033/viewer/2022060310/5f0a8ce67e708231d42c2f81/html5/thumbnails/64.jpg)
Software Engineering64
~/my-prog git checkout master
~/my-prog git add
~/my-prog git commit
~/my-prog git add ~/my-prog git commit ~/my-prog
HEADmaster
3be
parent
c85
parent
6f5parent
543
experiment
aa4b43
parentparent
![Page 65: 8.)Version)Control)with)Git - uni-tuebingen.deps.informatik.uni-tuebingen.de/.../ss17/se/08-vcs-git.pdf · 2017-06-15 · Software)Engineering Begriffe 8! Repository)! Änderungsgeschichteund)](https://reader033.vdocument.in/reader033/viewer/2022060310/5f0a8ce67e708231d42c2f81/html5/thumbnails/65.jpg)
Software Engineering65
~/my-prog git checkout master
~/my-prog git add
~/my-prog git commit
~/my-prog git add ~/my-prog git commit ~/my-prog git merge experiment
HEADmaster
3be
parent
c85
parent
6f5parent
543
experiment
aa4b43
parentparent
![Page 66: 8.)Version)Control)with)Git - uni-tuebingen.deps.informatik.uni-tuebingen.de/.../ss17/se/08-vcs-git.pdf · 2017-06-15 · Software)Engineering Begriffe 8! Repository)! Änderungsgeschichteund)](https://reader033.vdocument.in/reader033/viewer/2022060310/5f0a8ce67e708231d42c2f81/html5/thumbnails/66.jpg)
Software Engineering
parent
66
~/my-prog git merge experiment ~/my-prog
HEADmaster
a23
3be
parent
c85
parent
6f5parent
543
experiment
aa4b43
parentparent
parent
![Page 67: 8.)Version)Control)with)Git - uni-tuebingen.deps.informatik.uni-tuebingen.de/.../ss17/se/08-vcs-git.pdf · 2017-06-15 · Software)Engineering Begriffe 8! Repository)! Änderungsgeschichteund)](https://reader033.vdocument.in/reader033/viewer/2022060310/5f0a8ce67e708231d42c2f81/html5/thumbnails/67.jpg)
Software Engineering
parent
67
~/my-prog git merge experiment ~/my-prog git add ~/my-prog
HEADmaster
a23
3be
parent
c85
parent
6f5parent
543
experiment
aa4b43
parentparent
parent
![Page 68: 8.)Version)Control)with)Git - uni-tuebingen.deps.informatik.uni-tuebingen.de/.../ss17/se/08-vcs-git.pdf · 2017-06-15 · Software)Engineering Begriffe 8! Repository)! Änderungsgeschichteund)](https://reader033.vdocument.in/reader033/viewer/2022060310/5f0a8ce67e708231d42c2f81/html5/thumbnails/68.jpg)
Software Engineering
parent
68
~/my-prog git merge experiment ~/my-prog git add ~/my-prog git commit ~/my-prog
153
HEADmaster
parenta23
3be
parent
c85
parent
6f5parent
543
experiment
aa4b43
parentparent
parent
![Page 69: 8.)Version)Control)with)Git - uni-tuebingen.deps.informatik.uni-tuebingen.de/.../ss17/se/08-vcs-git.pdf · 2017-06-15 · Software)Engineering Begriffe 8! Repository)! Änderungsgeschichteund)](https://reader033.vdocument.in/reader033/viewer/2022060310/5f0a8ce67e708231d42c2f81/html5/thumbnails/69.jpg)
Software Engineering
Merge Konflikte
69
} Merge Konflikte treten auf, wenn die gleiche Datei in den beiden Branches auf konflingierende Weise geändert wurden.
} Führt zu Pausieren des Mergevorgangs } Beide Änderungen sind in der Konfliktdatei enthalten } Die Konfliktdatei muss manuell editiert werden } Danach kann der Merge fortgesetzt werden
<<<<<<< HEAD:index.html <div id="footer">contact : [email protected]</div> ======= <div id="footer"> please contact us at [email protected] </div> >>>>>>> iss53:index.html
![Page 70: 8.)Version)Control)with)Git - uni-tuebingen.deps.informatik.uni-tuebingen.de/.../ss17/se/08-vcs-git.pdf · 2017-06-15 · Software)Engineering Begriffe 8! Repository)! Änderungsgeschichteund)](https://reader033.vdocument.in/reader033/viewer/2022060310/5f0a8ce67e708231d42c2f81/html5/thumbnails/70.jpg)
Software Engineering
Demo 2
(branch, checkout commit, merge, cherrypick, blame)
![Page 71: 8.)Version)Control)with)Git - uni-tuebingen.deps.informatik.uni-tuebingen.de/.../ss17/se/08-vcs-git.pdf · 2017-06-15 · Software)Engineering Begriffe 8! Repository)! Änderungsgeschichteund)](https://reader033.vdocument.in/reader033/viewer/2022060310/5f0a8ce67e708231d42c2f81/html5/thumbnails/71.jpg)
Software Engineering
Die wichtigsten Befehle (3 / 4)
71
} git checkout commitCommit → Index / Arbeitskopie
} git rmDatei aus Index und Arbeitskopie löschen
} git blameLetzte Änderung an Datei Zeile für Zeile anzeigen
} git mergeMehrere Branches zusammenführen
} git cherrypickEinzelnen Commit an aktuellen Branch dranhängen
![Page 72: 8.)Version)Control)with)Git - uni-tuebingen.deps.informatik.uni-tuebingen.de/.../ss17/se/08-vcs-git.pdf · 2017-06-15 · Software)Engineering Begriffe 8! Repository)! Änderungsgeschichteund)](https://reader033.vdocument.in/reader033/viewer/2022060310/5f0a8ce67e708231d42c2f81/html5/thumbnails/72.jpg)
Software Engineering
Arbeiten im Team
![Page 73: 8.)Version)Control)with)Git - uni-tuebingen.deps.informatik.uni-tuebingen.de/.../ss17/se/08-vcs-git.pdf · 2017-06-15 · Software)Engineering Begriffe 8! Repository)! Änderungsgeschichteund)](https://reader033.vdocument.in/reader033/viewer/2022060310/5f0a8ce67e708231d42c2f81/html5/thumbnails/73.jpg)
Software Engineering
Verteilte Versionskontrolle mit Server
73
} Ein zentrales Repository ermöglicht vereinfachten Austausch
Computer A
Repository
Working Copy
File 1
Version 3...
...
Computer B
Repository
Working Copy
File 1
Version 3...
...
Server
Repository
Version 3...
![Page 74: 8.)Version)Control)with)Git - uni-tuebingen.deps.informatik.uni-tuebingen.de/.../ss17/se/08-vcs-git.pdf · 2017-06-15 · Software)Engineering Begriffe 8! Repository)! Änderungsgeschichteund)](https://reader033.vdocument.in/reader033/viewer/2022060310/5f0a8ce67e708231d42c2f81/html5/thumbnails/74.jpg)
Software Engineering
Begriffe
74
} Remote Repository } Ein externes Repository im
Netzwek / Internet
} Fetch } Die lokale Kopie des Remote
Repositories im eigenen Repo aktualisieren
} Push } Die lokale Kopie des Remote
Repositories zum externen Repo hochladen
} Remote Branch } Referenz auf einen Branch in
einem Remote Repository
} Remote Tracking Branch } Remote Branch, welcher
automatisch aktualisiert wird
} Tracking Branch } Lokale Kopie eines Remote
Tracking Branches mit einer Referenz auf den "Upstream Branch"
![Page 75: 8.)Version)Control)with)Git - uni-tuebingen.deps.informatik.uni-tuebingen.de/.../ss17/se/08-vcs-git.pdf · 2017-06-15 · Software)Engineering Begriffe 8! Repository)! Änderungsgeschichteund)](https://reader033.vdocument.in/reader033/viewer/2022060310/5f0a8ce67e708231d42c2f81/html5/thumbnails/75.jpg)
Software Engineering
Begriffe
75
} Remote Repository } Ein externes Repository im
Netzwek / Internet
} Fetch } Die lokale Kopie des Remote
Repositories im eigenen Repo aktualisieren
} Push } Die lokale Kopie des Remote
Repositories zum externen Repo hochladen
} Remote Branch } Referenz auf einen Branch in
einem Remote Repository
} Remote Tracking Branch } Remote Branch, welcher
automatisch aktualisiert wird
} Tracking Branch } Lokale Kopie eines Remote
Tracking Branches mit einer Referenz auf den "Upstream Branch"
![Page 76: 8.)Version)Control)with)Git - uni-tuebingen.deps.informatik.uni-tuebingen.de/.../ss17/se/08-vcs-git.pdf · 2017-06-15 · Software)Engineering Begriffe 8! Repository)! Änderungsgeschichteund)](https://reader033.vdocument.in/reader033/viewer/2022060310/5f0a8ce67e708231d42c2f81/html5/thumbnails/76.jpg)
Software Engineering
Begriffe
76
} Remote Repository } Ein externes Repository im
Netzwek / Internet
} Fetch } Die lokale Kopie des Remote
Repositories im eigenen Repo aktualisieren
} Push } Die lokale Kopie des Remote
Repositories zum externen Repo hochladen
} Remote Branch } Referenz auf einen Branch in
einem Remote Repository
} Remote Tracking Branch } Remote Branch, welcher
automatisch aktualisiert wird
} Tracking Branch } Lokale Kopie eines Remote
Tracking Branches mit einer Referenz auf den "Upstream Branch"
![Page 77: 8.)Version)Control)with)Git - uni-tuebingen.deps.informatik.uni-tuebingen.de/.../ss17/se/08-vcs-git.pdf · 2017-06-15 · Software)Engineering Begriffe 8! Repository)! Änderungsgeschichteund)](https://reader033.vdocument.in/reader033/viewer/2022060310/5f0a8ce67e708231d42c2f81/html5/thumbnails/77.jpg)
Software Engineering
Begriffe
77
} Remote Repository } Ein externes Repository im
Netzwek / Internet
} Fetch } Die lokale Kopie des Remote
Repositories im eigenen Repo aktualisieren
} Push } Die lokale Kopie des Remote
Repositories zum externen Repo hochladen
} Remote Branch } Referenz auf einen Branch in
einem Remote Repository
} Remote Tracking Branch } Remote Branch, welcher
automatisch aktualisiert wird
} Tracking Branch } Lokale Kopie eines Remote
Tracking Branches mit einer Referenz auf den "Upstream Branch"
![Page 78: 8.)Version)Control)with)Git - uni-tuebingen.deps.informatik.uni-tuebingen.de/.../ss17/se/08-vcs-git.pdf · 2017-06-15 · Software)Engineering Begriffe 8! Repository)! Änderungsgeschichteund)](https://reader033.vdocument.in/reader033/viewer/2022060310/5f0a8ce67e708231d42c2f81/html5/thumbnails/78.jpg)
Software Engineering
Begriffe
78
} Remote Repository } Ein externes Repository im
Netzwek / Internet
} Fetch } Die lokale Kopie des Remote
Repositories im eigenen Repo aktualisieren
} Push } Die lokale Kopie des Remote
Repositories zum externen Repo hochladen
} Remote Branch } Referenz auf einen Branch in
einem Remote Repository
} Remote Tracking Branch } Remote Branch, welcher
automatisch aktualisiert wird
} Tracking Branch } Lokale Kopie eines Remote
Tracking Branches mit einer Referenz auf den "Upstream Branch"
![Page 79: 8.)Version)Control)with)Git - uni-tuebingen.deps.informatik.uni-tuebingen.de/.../ss17/se/08-vcs-git.pdf · 2017-06-15 · Software)Engineering Begriffe 8! Repository)! Änderungsgeschichteund)](https://reader033.vdocument.in/reader033/viewer/2022060310/5f0a8ce67e708231d42c2f81/html5/thumbnails/79.jpg)
Software Engineering
Begriffe
79
} Remote Repository } Ein externes Repository im
Netzwek / Internet
} Fetch } Die lokale Kopie des Remote
Repositories im eigenen Repo aktualisieren
} Push } Die lokale Kopie des Remote
Repositories zum externen Repo hochladen
} Remote Branch } Referenz auf einen Branch in
einem Remote Repository
} Remote Tracking Branch } Remote Branch, welcher
automatisch aktualisiert wird
} Tracking Branch } Lokale Kopie eines Remote
Tracking Branches mit einer Referenz auf den "Upstream Branch"
![Page 80: 8.)Version)Control)with)Git - uni-tuebingen.deps.informatik.uni-tuebingen.de/.../ss17/se/08-vcs-git.pdf · 2017-06-15 · Software)Engineering Begriffe 8! Repository)! Änderungsgeschichteund)](https://reader033.vdocument.in/reader033/viewer/2022060310/5f0a8ce67e708231d42c2f81/html5/thumbnails/80.jpg)
Software Engineering
Begriffe
80
} Remote Repository } Ein externes Repository im
Netzwek / Internet
} Fetch } Die lokale Kopie des Remote
Repositories im eigenen Repo aktualisieren
} Push } Die lokale Kopie des Remote
Repositories zum externen Repo hochladen
} Remote Branch } Referenz auf einen Branch in
einem Remote Repository
} Remote Tracking Branch } Remote Branch, welcher
automatisch aktualisiert wird
} Tracking Branch } Lokale Kopie eines Remote
Tracking Branches mit einer Referenz auf den "Upstream Branch"
![Page 81: 8.)Version)Control)with)Git - uni-tuebingen.deps.informatik.uni-tuebingen.de/.../ss17/se/08-vcs-git.pdf · 2017-06-15 · Software)Engineering Begriffe 8! Repository)! Änderungsgeschichteund)](https://reader033.vdocument.in/reader033/viewer/2022060310/5f0a8ce67e708231d42c2f81/html5/thumbnails/81.jpg)
Software Engineering
git.company.com
master6f5parent
543
My Computer
81
~/project git clone [email protected]:project
![Page 82: 8.)Version)Control)with)Git - uni-tuebingen.deps.informatik.uni-tuebingen.de/.../ss17/se/08-vcs-git.pdf · 2017-06-15 · Software)Engineering Begriffe 8! Repository)! Änderungsgeschichteund)](https://reader033.vdocument.in/reader033/viewer/2022060310/5f0a8ce67e708231d42c2f81/html5/thumbnails/82.jpg)
Software Engineering
git.company.com
master6f5parent
543
My Computer
82
~/project git clone [email protected]:project ~/project
HEAD
master
origin/master
6f5parent
543
![Page 83: 8.)Version)Control)with)Git - uni-tuebingen.deps.informatik.uni-tuebingen.de/.../ss17/se/08-vcs-git.pdf · 2017-06-15 · Software)Engineering Begriffe 8! Repository)! Änderungsgeschichteund)](https://reader033.vdocument.in/reader033/viewer/2022060310/5f0a8ce67e708231d42c2f81/html5/thumbnails/83.jpg)
Software Engineering
git.company.com
master6f5parent
543
My Computer
83
~/project git add ~/project git commit ~/project
HEAD
master
origin/master
6f5parent
543
![Page 84: 8.)Version)Control)with)Git - uni-tuebingen.deps.informatik.uni-tuebingen.de/.../ss17/se/08-vcs-git.pdf · 2017-06-15 · Software)Engineering Begriffe 8! Repository)! Änderungsgeschichteund)](https://reader033.vdocument.in/reader033/viewer/2022060310/5f0a8ce67e708231d42c2f81/html5/thumbnails/84.jpg)
Software Engineering
git.company.com
master6f5parent
543
My Computer
84
~/project git add ~/project git commit ~/project
HEAD
master
origin/master
6f5parent
543 c85parent
![Page 85: 8.)Version)Control)with)Git - uni-tuebingen.deps.informatik.uni-tuebingen.de/.../ss17/se/08-vcs-git.pdf · 2017-06-15 · Software)Engineering Begriffe 8! Repository)! Änderungsgeschichteund)](https://reader033.vdocument.in/reader033/viewer/2022060310/5f0a8ce67e708231d42c2f81/html5/thumbnails/85.jpg)
Software Engineering
git.company.com
master6f5parent
543
My Computer
85
~/project git add ~/project git commit ~/project
HEAD
master
origin/master
6f5parent
543 c85parent
3beparent
![Page 86: 8.)Version)Control)with)Git - uni-tuebingen.deps.informatik.uni-tuebingen.de/.../ss17/se/08-vcs-git.pdf · 2017-06-15 · Software)Engineering Begriffe 8! Repository)! Änderungsgeschichteund)](https://reader033.vdocument.in/reader033/viewer/2022060310/5f0a8ce67e708231d42c2f81/html5/thumbnails/86.jpg)
Software Engineering
git.company.com
master6f5parent
543
My Computer
86
HEAD
master
origin/master
6f5parent
543 c85parent
3beparent
Jemand anderes arbeitet parallel und aktualisiert das Remote Repository vor uns
![Page 87: 8.)Version)Control)with)Git - uni-tuebingen.deps.informatik.uni-tuebingen.de/.../ss17/se/08-vcs-git.pdf · 2017-06-15 · Software)Engineering Begriffe 8! Repository)! Änderungsgeschichteund)](https://reader033.vdocument.in/reader033/viewer/2022060310/5f0a8ce67e708231d42c2f81/html5/thumbnails/87.jpg)
Software Engineering
git.company.com
master6f5parent
543
My Computer
87
HEAD
master
origin/master
6f5parent
543 c85parent
3beparent
Jemand anderes arbeitet parallel und aktualisiert das Remote Repository vor uns
b43parent
![Page 88: 8.)Version)Control)with)Git - uni-tuebingen.deps.informatik.uni-tuebingen.de/.../ss17/se/08-vcs-git.pdf · 2017-06-15 · Software)Engineering Begriffe 8! Repository)! Änderungsgeschichteund)](https://reader033.vdocument.in/reader033/viewer/2022060310/5f0a8ce67e708231d42c2f81/html5/thumbnails/88.jpg)
Software Engineering
git.company.com
master6f5parent
543
My Computer
88
HEAD
master
origin/master
6f5parent
543 c85parent
3beparent
Jemand anderes arbeitet parallel und aktualisiert das Remote Repository vor uns
b43parent parent
aa4
![Page 89: 8.)Version)Control)with)Git - uni-tuebingen.deps.informatik.uni-tuebingen.de/.../ss17/se/08-vcs-git.pdf · 2017-06-15 · Software)Engineering Begriffe 8! Repository)! Änderungsgeschichteund)](https://reader033.vdocument.in/reader033/viewer/2022060310/5f0a8ce67e708231d42c2f81/html5/thumbnails/89.jpg)
Software Engineering
git.company.com
master6f5parent
543
My Computer
89
HEAD
master
origin/master
6f5parent
543 c85parent
3beparent
b43parent parent
aa4
~/project git fetch ~/project
parentaa4b43
parent
![Page 90: 8.)Version)Control)with)Git - uni-tuebingen.deps.informatik.uni-tuebingen.de/.../ss17/se/08-vcs-git.pdf · 2017-06-15 · Software)Engineering Begriffe 8! Repository)! Änderungsgeschichteund)](https://reader033.vdocument.in/reader033/viewer/2022060310/5f0a8ce67e708231d42c2f81/html5/thumbnails/90.jpg)
Software Engineering
git.company.com
master6f5parent
543
My Computer
90
HEAD
master
origin/master
6f5parent
543 c85parent
3beparent
b43parent parent
aa4
~/project git merge origin/master ~/project
parentaa4b43
parent
a23
parent
parent
![Page 91: 8.)Version)Control)with)Git - uni-tuebingen.deps.informatik.uni-tuebingen.de/.../ss17/se/08-vcs-git.pdf · 2017-06-15 · Software)Engineering Begriffe 8! Repository)! Änderungsgeschichteund)](https://reader033.vdocument.in/reader033/viewer/2022060310/5f0a8ce67e708231d42c2f81/html5/thumbnails/91.jpg)
Software Engineering
git.company.com
master
a233be
parent
c85
6f5parent
543 aa4b43
parent parent
parent
parent
parent
My Computer
91
HEAD
master
a233be
parent
c856f5parent
543
origin/masteraa4b43parent
parent
parent
parent parent
~/project git push origin master:master ~/project
![Page 92: 8.)Version)Control)with)Git - uni-tuebingen.deps.informatik.uni-tuebingen.de/.../ss17/se/08-vcs-git.pdf · 2017-06-15 · Software)Engineering Begriffe 8! Repository)! Änderungsgeschichteund)](https://reader033.vdocument.in/reader033/viewer/2022060310/5f0a8ce67e708231d42c2f81/html5/thumbnails/92.jpg)
Software Engineering
Rebase Workflow
![Page 93: 8.)Version)Control)with)Git - uni-tuebingen.deps.informatik.uni-tuebingen.de/.../ss17/se/08-vcs-git.pdf · 2017-06-15 · Software)Engineering Begriffe 8! Repository)! Änderungsgeschichteund)](https://reader033.vdocument.in/reader033/viewer/2022060310/5f0a8ce67e708231d42c2f81/html5/thumbnails/93.jpg)
Software Engineering93
~/my-prog git checkout master
~/my-prog git add
~/my-prog git commit
~/my-prog git add ~/my-prog git commit ~/my-prog git checkout experiment
master
3be
parent
c85
parent
6f5parent
543
experiment
aa4b43
parentparent
HEAD
![Page 94: 8.)Version)Control)with)Git - uni-tuebingen.deps.informatik.uni-tuebingen.de/.../ss17/se/08-vcs-git.pdf · 2017-06-15 · Software)Engineering Begriffe 8! Repository)! Änderungsgeschichteund)](https://reader033.vdocument.in/reader033/viewer/2022060310/5f0a8ce67e708231d42c2f81/html5/thumbnails/94.jpg)
Software Engineering94
~/my-prog git checkout experiment ~/my-prog git rebase master
master
3be
parent
c85
parent
6f5parent
543
experiment
aa4b43
parentparent
HEAD
![Page 95: 8.)Version)Control)with)Git - uni-tuebingen.deps.informatik.uni-tuebingen.de/.../ss17/se/08-vcs-git.pdf · 2017-06-15 · Software)Engineering Begriffe 8! Repository)! Änderungsgeschichteund)](https://reader033.vdocument.in/reader033/viewer/2022060310/5f0a8ce67e708231d42c2f81/html5/thumbnails/95.jpg)
Software Engineering95
~/my-prog git checkout experiment ~/my-prog git rebase master ~/my-prog
master
3be
parent
c85
6f5parent
543
834f21
parentparent
experimentHEAD
parent
![Page 96: 8.)Version)Control)with)Git - uni-tuebingen.deps.informatik.uni-tuebingen.de/.../ss17/se/08-vcs-git.pdf · 2017-06-15 · Software)Engineering Begriffe 8! Repository)! Änderungsgeschichteund)](https://reader033.vdocument.in/reader033/viewer/2022060310/5f0a8ce67e708231d42c2f81/html5/thumbnails/96.jpg)
Software Engineering96
~/my-prog git checkout experiment ~/my-prog git rebase master ~/my-prog git checkout master ~/my-prog
master
3be
parent
c85
6f5parent
543
834f21
parentparent
HEAD
experiment
parent
![Page 97: 8.)Version)Control)with)Git - uni-tuebingen.deps.informatik.uni-tuebingen.de/.../ss17/se/08-vcs-git.pdf · 2017-06-15 · Software)Engineering Begriffe 8! Repository)! Änderungsgeschichteund)](https://reader033.vdocument.in/reader033/viewer/2022060310/5f0a8ce67e708231d42c2f81/html5/thumbnails/97.jpg)
Software Engineering97
~/my-prog git checkout experiment ~/my-prog git rebase master ~/my-prog git checkout master ~/my-prog git merge experiment
master
3be
parent
c85
6f5parent
543
834f21
parentparent
parent
HEAD
experiment
![Page 98: 8.)Version)Control)with)Git - uni-tuebingen.deps.informatik.uni-tuebingen.de/.../ss17/se/08-vcs-git.pdf · 2017-06-15 · Software)Engineering Begriffe 8! Repository)! Änderungsgeschichteund)](https://reader033.vdocument.in/reader033/viewer/2022060310/5f0a8ce67e708231d42c2f81/html5/thumbnails/98.jpg)
Software Engineering98
~/my-prog git checkout experiment ~/my-prog git rebase master ~/my-prog git checkout master ~/my-prog git merge experiment ~/my-prog
master
3bec85
6f5parent
543
parentparent
HEAD
parent834f21
parent
experiment
![Page 99: 8.)Version)Control)with)Git - uni-tuebingen.deps.informatik.uni-tuebingen.de/.../ss17/se/08-vcs-git.pdf · 2017-06-15 · Software)Engineering Begriffe 8! Repository)! Änderungsgeschichteund)](https://reader033.vdocument.in/reader033/viewer/2022060310/5f0a8ce67e708231d42c2f81/html5/thumbnails/99.jpg)
Software Engineering99
~/my-prog git checkout experiment ~/my-prog git rebase master ~/my-prog git checkout master ~/my-prog git merge experiment ~/my-prog git branch -d experiment ~/my-prog
master
3bec85
6f5parent
543
parentparent
HEAD
parent834f21
parent
![Page 100: 8.)Version)Control)with)Git - uni-tuebingen.deps.informatik.uni-tuebingen.de/.../ss17/se/08-vcs-git.pdf · 2017-06-15 · Software)Engineering Begriffe 8! Repository)! Änderungsgeschichteund)](https://reader033.vdocument.in/reader033/viewer/2022060310/5f0a8ce67e708231d42c2f81/html5/thumbnails/100.jpg)
Software Engineering
Demo 3
(clone, fetch, push, pull, rebase)
![Page 101: 8.)Version)Control)with)Git - uni-tuebingen.deps.informatik.uni-tuebingen.de/.../ss17/se/08-vcs-git.pdf · 2017-06-15 · Software)Engineering Begriffe 8! Repository)! Änderungsgeschichteund)](https://reader033.vdocument.in/reader033/viewer/2022060310/5f0a8ce67e708231d42c2f81/html5/thumbnails/101.jpg)
Software Engineering
Die wichtigsten Befehle (4 / 4)
101
} git clone urlRemote Repo → Lokales Repo
} git fetch remoteRemote Tracking Branches des lokalen Repos aktualisieren
} git push remote branchLokales Repo → Remote Repo
} git pullBei Tracking Branches: Abkürzung für git fetch; git merge
} git rebase branchDie Commits vom aktuellen Branch in Diffs umwandeln und den angegebenen Branch als Basis verwenden
![Page 102: 8.)Version)Control)with)Git - uni-tuebingen.deps.informatik.uni-tuebingen.de/.../ss17/se/08-vcs-git.pdf · 2017-06-15 · Software)Engineering Begriffe 8! Repository)! Änderungsgeschichteund)](https://reader033.vdocument.in/reader033/viewer/2022060310/5f0a8ce67e708231d42c2f81/html5/thumbnails/102.jpg)
Software Engineering
Probeklausur
![Page 103: 8.)Version)Control)with)Git - uni-tuebingen.deps.informatik.uni-tuebingen.de/.../ss17/se/08-vcs-git.pdf · 2017-06-15 · Software)Engineering Begriffe 8! Repository)! Änderungsgeschichteund)](https://reader033.vdocument.in/reader033/viewer/2022060310/5f0a8ce67e708231d42c2f81/html5/thumbnails/103.jpg)
Software Engineering
Tutorinnen & Tutoren gesucht für Info 1