Software Engineering

Ähnliche Dokumente
Git-Grundlagen für Entwickler. Thomas Claudius

Versionsverwaltung. Seminar Softwareentwicklung in der Wissenschaft Robert Wiesner

Das Tübinger Softwareprojekt

Enes Kurnaz, Oliver Nagel Institut für Mathematik und Informatik. Versionsverwaltung mit Git

Arbeiten mit dem Versionsverwaltungssystem. Jannik Kramer Proseminar Werkzeuge für das wissenschaftliche Arbeiten

Von SVN zu Git. Daniel Willmann cbna

Praktikum Ingenieurinformatik (PI)

Versionsverwaltung mit Git. Eine Einführung ins Source Code Management

Einführung in Git. master. Initial commit

Versionsverwaltung für die KU Betriebssysteme. Eine Einführung

Verteilte Versionskontrolle mit GIT Dortmund Ansgar Brauner - GreenPocket GmbH - Köln

Einführung in Git. Dirk Deimeke. 19. August My own IT. ddeimeke (My own IT) Einführung in Git 19. August / 23

Prof. Dr. Marko Boger. Prof. Dr. Christian Johner. Versionsmanagement

Git - Fast Version Control System

Versionsverwaltung mit GIT

Versionsverwaltung mit git

Einführung zu Git. Das Nötigste für die Studienarbeit im Modul Datenkommunikation. Ege Inanc

git Änderungen verwalten mit git

Eine Einführung in das verteilte Quelltextverwaltungssystem Git

Versionsverwaltung mit Git

Medieninformatik Praktikum. Jens Rademacher

Moodle aktuell halten mit Git

Softwareentwicklung I (IB) Versionsverwaltung mit Git

WOZU VERSIONSKONTROLLE?

Praktische Einführung in die Versionsverwaltung mit Eclipse

Versionkontrolle mit git

Apache Subversion (SVN)

Vorlesung Unix-Praktikum

Versionierung für OpenSourcler

Verteile Revisionskontrolle mit GIT

Versionierung und Bugtracking mit Git(Hub)

Apache Subversion (SVN)

Programmieren 2 06 Git-Teamwork und Egit

Tutorium SS17 EINFÜHRUNG + BREAKOUT

Semesterprojekt Entwicklung einer Suchmaschine für Alternativmethoden zu Tierversuchen. Versionierung und Bugtracking mit GitHub

Einführung in Verteilte Versionskontrollsysteme. am Beispiel von Git

Die Projek*ools. Files, Git, Tickets & Time

Linux Cafe Referent: Bernd Strößenreuther

Git in großen Projekten

Versionsverwaltung von Softwareartefakten. 21. Oktober 2014

git Alexander Bernauer Rico Schiekel

Programmieren 2 05 Versionsverwaltung mit Git

Torsten Flatter inovex GmbH. "Git.NET" gibt's nicht?

Gitting started. Christian Neukirchen. 14dec2011

Spiel, Spaß und Spannung mit Git

Git II. Dezentrale Versionsverwaltung im Team

DNUG FN TOBIAS ALLWEIER

Einführung in git. Johannes Gilger & Matthias Lederhofer. Rechen- und Kommunikationszentrum der RWTH Aachen Network Operation Center. 14.

Versionsverwaltung mit SVN

git & git-flow Jens Sandmann Warpzone Münster e.v. Jens Sandmann (WZ) git & git-flow / 31

Versionskontrolle mit Mercurial. Michael Gebetsroither

Programmieren 1 11 Versionsverwaltung mit Git - Grundlagen -

Git - Grundlagen und Anwendungen

Mercurial. or how I learned to stop worrying and love the merge. Ted Naleid IAIK

Dezentrale Versionsverwaltung

Source Code Verwaltung mit Git

Apache Subversion (SVN)

Einführung Git Interna Workflows Referenzen. Git. Fast Version Control System. Michael Kuhn

Git Eine Einführung. LinuxTag 2013, Berlin. Julius Plenz. 22. Mai 2013

git verteilte Versionskontrolle

Versionsverwaltung mit Git

Versionsverwaltung. Dr.-Ing. Matthias Sand. Lehrstuhl für Informatik 3 (Rechnerarchitektur) Friedrich-Alexander-Universität Erlangen-Nürnberg SS 2009

Versionskontrolle mit Git

Einstieg in Git. Lukáš Kubánek

Konfigurationsdateien mit Git verwalten

Mapra: C++ Teil 3. Felix Gruber, Michael Rom. IGPM, RWTH Aachen. 10. Mai 2016

eclipse - EGit HowTo

Mapra: C++ Teil 5. Felix Gruber, Sven Groß. 16. Mai IGPM, RWTH Aachen. Felix Gruber, Sven Groß (IGPM) Mapra: C++ Teil 5 16.

Programmierkurs. Steffen Müthing. November 9, Interdisciplinary Center for Scientific Computing, Heidelberg University

Versionsverwaltung mit git: Warum und wie.

Thomas Rau (mit Material von Peter Brichzin) Repositories zur Unterstützung von kollaborativen Arbeiten in Softwareprojekten

Git. Dezentrale Versionsverwaltung im Team - Grundlagen und Workflows. von René Preißel, Bjørn Stachmann. 2., aktualisierte und erweiterte Auflage

Dr. R. Guderlei exxcellent solutions gmbh Tim Felgentreff HPI. Versionsmanagement. Zentral oder Verteilt?

git Workshop Matthias Beyer Hochschule Furtwangen University matthias. hs-furtwangen. de beyermatthias. de 19.

SVN-Einführung für das SEP DS und CM. Julian Timpner, Stefan Brenner, Stephan Rottmann

Überblick. Middleware Cloud Computing Übung. Übungsaufgaben. Termine und Ansprechpartner. Organisatorisches

Mitmachen bei Git(Hub)-Projekten!

Brauche ich ein DVCS?

Versionsverwaltung mit git. Christoph Knabe FB VI

Grundkurs C++ Buildsysteme Versionsverwaltung mit git

Subversion als Werkzeug in der Software-Entwicklung Eine Einführung. Tobias G. Pfeiffer Freie Universität Berlin

Gerrit und Jenkins ein Traumpaar für Pre-Tested Commit

Grundkurs C++ Buildsysteme Versionsverwaltung mit git

Vorlesung Programmieren. Versionskontrollsysteme. Ziele von VCS. Versionskontrolle

Revisionskontrollsystem GIT

EGit: Die effiziente Git- Integration in Eclipse

Middleware Cloud Computing Übung

Versionsmanagement. Software(technik)praktikum: Vorlesung 3: Versionsmanagement

SWP Übersetzerbau im SS 13 Einführung und Organisatorisches. Till Zoppke Maximilian Konzack Yves Müller Freie Universität Berlin

Julius Plenz. Valentin Haenel. Git. Verteilte Versionsverwaltung für Code Dokumente. 2. Auflage. Open Source Press

Versionskontrolle. Vortrag im Master-Praktikum MindStreams Sommersemester Michael Fiedler 30.

Einführung in Subversion

Lehrstuhl für Datenverarbeitung. Technische Universität München. Grundkurs C++ Buildsysteme

Grundkurs C++ Buildsysteme Versionsverwaltung mit git

Semesterprojekt Implementierung eines Brettspiels (inklusive computergesteuerter Spieler) Versionierung und Bugtracking mit GitHub

Versionsverwaltung mit Mercurial für Einsteiger

GIT. Florian Westphal. 29. November D/F260502D 1C81 1AD5 EA8F E8EE 5E2F DA6C F D

Versionskontrolle mit Apache Subversion

CVS. The open standard for version control. (Concurrent Versions System) Maik Zemann CVS

Transkript:

8. Version Control with Git Jonathan Brachthäuser

Einordnung: Zusammenfassung Anforderungsermittlung - (Nicht- )funktionale Anf. - Anwendungsfälle - Userstories Problem Anforderung Continuous Delivery & Feedback Testing / TDD / BDD Modellierung - UML - OO- Design - Design / Architektur Patterns - SOLID Design Prinzipien - GRASP Lösung Entwurf Realisierung - Programmierrichtlinien - Code Smells - Versionsverwaltung - Continuous Integration - Code Reviews - Pair Programming - Dokumentation 2

Literaturempfehlung Online verfügbar unter: https://git- scm.com/book/en/v2 Onlinetutorials auf: https://try.github.io und http://gitreal.codeschool.com/ Außerdem: Übungsblätter zu git sind auf der Vorlesungsseite zu finden 3

Versionskontrolle

Was ist Versionskontrolle? 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? 5

Wozu Versionskontrolle? 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 6

Begriffe 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 7

Begriffe 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 8

Begriffe 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 9

Wo ist das Repository gespeichert? Lokale Versionskontrollsysteme Local Computer Working Copy Repository File 2 File 1 Version 3 Version 2 Version 1 10

Wo ist das Repository gespeichert? Zentrale Versionskontrollsysteme Computer A Computer B Working Copy Computer C Working Copy File 2 Working Copy File 2 File File 1 2 File 1 File 1 Central VCS Server Repository Version 3 Version 2 Version 1 11

Wo ist das Repository gespeichert? Verteilte Versionskontrollsysteme Server Computer Computer A Repository Version 3... Working Copy File 1... Repository Version 3... Computer B Repository Version 3... Working Copy File 1... 12

Begriffe 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 13

Begriffe 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 14

Diffs answer = 7 factor = 3 while (answer < 60) { answer *= factor factor += 1 } vorher answer = 7 factor = 2 while (answer < 40) { answer *= factor factor += 1 } nachher 15 answer = 7 -factor = 3 -while (answer < 60) { +factor = 2 +while (answer < 40) { answer *= factor factor += 1 } diff

Was ist im Repository gespeichert? Diff basierte Versionskontrollsysteme Veränderung über die Zeit Version 1 Version 2 Version 3 File A Δ1 File B File C Δ1 Δ2 16

Was ist im Repository gespeichert? Snapshot basierte Versionskontrollsysteme Veränderung über die Zeit Version 1 Version 2 Version 3 File A A1 A1 File B B B File C C1 C2 17

Begriffe 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 18

Begriffe 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 19

git

Was ist git? 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 21

Wie funktioniert git? Verteilt Snapshot- basiert Effiziente Speicherung durch Hash- Adressierung Index Viele Kommandozeilenbefehle 22

Drei Schritte in Git Git unterscheidet zwischen Working Copy, Staging Area und Repository Computer Working Copy Staging Area Repository Copy project (checkout) Stage changes (add) Confirm (commit) 23

~ mkdir my-prog 24

my-prog ~ mkdir my-prog ~ 25

my-prog ~ mkdir my-prog ~ ~ cd my-prog 26

my-prog ~ ~ cd my-prog ~/my-prog 27

my-prog ~ ~ cd my-prog ~/my-prog git init 28

my-prog.git ~/my-prog git init Initialized empty Git repository in ~/my-prog/.git/ 29

my-prog.git Hello.java ~/my-prog git init Initialized empty Git repository in ~/my-prog/.git/ 30

my-prog.git Hello.java Initialized empty Git repository in ~/my-prog/.git/ ~/my-prog git add Hello.java 31

index Hello.java my-prog.git Hello.java ~ cd my-prog ~/my-prog git add Hello.java ~/my-prog 32

index Hello.java my-prog.git Hello.java ~ ~ cd my-prog ~/my-prog git add Hello.java ~/my-prog git commit -m "Add hello" 33

HEAD 9ad66d3 index tree Hello.java my-prog.git Hello.java ~/my-prog git commit -m "Add hello" [ 9ad66d3] Add hello 1 file changed, 5 insertions (+) 34

HEAD 9ad66d3 index tree Hello.java ~/my-prog git commit -m "Add hello" [ 9ad66d3] Add hello 1 file changed, 5 insertions (+) 35 my-prog.git Hello.java lib Util.java

HEAD 9ad66d3 index tree Hello.java ~/my-prog git add lib/util.java my-prog.git Hello.java lib Util.java 36

HEAD 9ad66d3 tree index Hello.java Hello.java lib Util.java ~/my-prog git add lib/util.java ~/my-prog my-prog.git Hello.java lib Util.java 37

HEAD 9ad66d3 tree index Hello.java Hello.java lib Util.java ~/my-prog git add lib/util.java ~/my-prog git commit -m "Add util" my-prog.git Hello.java lib Util.java 38

HEAD 9ad66d3 tree index f146864 tree Hello.java Hello.java lib Util.java ~/my-prog git commit -m "Add util" [ f146864] Add util 1 file changed, 3 insertions (+) 39 my-prog.git Hello.java lib Util.java

HEAD 9ad66d3 tree index f146864 tree Hello.java Hello.java lib Util.java ~/my-prog git commit -m "Add util" [ f146864] Add util 1 file changed, 3 insertions (+) 40 my-prog.git Hello.java lib Util.java

HEAD 9ad66d3 tree index f146864 tree Hello.java Hello.java lib Util.java ~/my-prog git add Hello.java my-prog.git Hello.java lib Util.java 41

HEAD 9ad66d3 f146864 tree tree index Hello.java Hello.java lib Util.java Hello.java lib Util.java ~/my-prog git add Hello.java ~/my-prog my-prog.git Hello.java lib Util.java 42

HEAD 9ad66d3 f146864 tree tree index Hello.java Hello.java lib Util.java Hello.java lib Util.java ~/my-prog git add Hello.java ~/my-prog git commit -m "Add bye" my-prog.git Hello.java lib Util.java 43

HEAD 9ad66d3 f146864 153b94c tree tree index tree Hello.java Hello.java lib Util.java Hello.java lib Util.java ~/my-prog git commit -m "Add bye" [ 153b94c] Add bye 1 file changed, 1 insertions (+) 44 my-prog.git Hello.java lib Util.java

Demo (init, status, diff, add (- p), diff - - staged, checkout, commit, log)

Die wichtigsten Befehle (1 / 4) git help Liste wichtiger Befehle git help command Hilfe zu einzelnen Befehlen git init Neues Repository initialisieren git add Arbeitskopie Index git checkout Index Arbeitskopie git commit Index Repository 46

Die wichtigsten Befehle (2 / 4) git status Informationen zur Arbeitskopie und HEAD anzeigen git show commit Informationen zu Commit zeigen git reflog Entwicklung von HEAD zeigen git diff Arbeitskopie vs. Index git diff - - staged Index vs. Head git log Änderungsgeschichte zeigen 47

Branches & Merging

~/my-prog 543 HEAD 49

~/my-prog git add ~/my-prog 543 HEAD 50

~/my-prog git add ~/my-prog git commit ~/my-prog 543 6f5 HEAD 51

~/my-prog git add ~/my-prog git commit ~/my-prog git branch experiment ~/my-prog experiment 543 6f5 HEAD 52

~/my-prog git add ~/my-prog git commit ~/my-prog git branch experiment ~/my-prog git checkout experiment experiment 543 6f5 HEAD 53

~/my-prog git checkout experiment ~/my-prog HEAD experiment 543 6f5 54

~/my-prog git checkout experiment ~/my-prog git add ~/my-prog HEAD experiment 543 6f5 55

~/my-prog git checkout experiment ~/my-prog git add ~/my-prog git commit ~/my-prog HEAD experiment b43 543 6f5 56

~/my-prog git checkout experiment ~/my-prog git add ~/my-prog git commit ~/my-prog git add ~/my-prog HEAD experiment b43 543 6f5 57

HEAD experiment ~/my-prog git checkout experiment ~/my-prog git add ~/my-prog git commit ~/my-prog git add ~/my-prog git commit ~/my-prog b43 aa4 543 6f5 58

HEAD experiment ~/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 b43 aa4 543 6f5 59

~/my-prog git checkout ~/my-prog experiment b43 aa4 543 6f5 HEAD 60

~/my-prog git checkout ~/my-prog git add ~/my-prog experiment b43 aa4 543 6f5 HEAD 61

~/my-prog git checkout ~/my-prog git add ~/my-prog git commit ~/my-prog experiment b43 aa4 543 6f5 c85 HEAD 62

~/my-prog git checkout ~/my-prog git add ~/my-prog git commit ~/my-prog git add ~/my-prog experiment b43 aa4 543 6f5 c85 HEAD 63

experiment ~/my-prog git checkout ~/my-prog git add ~/my-prog git commit ~/my-prog git add ~/my-prog git commit ~/my-prog b43 aa4 543 6f5 c85 3be HEAD 64

experiment ~/my-prog git checkout ~/my-prog git add ~/my-prog git commit ~/my-prog git add ~/my-prog git commit ~/my-prog git merge experiment b43 aa4 543 6f5 c85 3be HEAD 65

~/my-prog git merge experiment ~/my-prog experiment b43 aa4 543 6f5 a23 c85 3be HEAD 66

~/my-prog git merge experiment ~/my-prog git add ~/my-prog experiment b43 aa4 543 6f5 a23 c85 3be HEAD 67

~/my-prog git merge experiment ~/my-prog git add ~/my-prog git commit ~/my-prog experiment b43 aa4 543 6f5 a23 153 c85 3be HEAD 68

Merge Konflikte 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.support@github.com</div> ======= <div id="footer"> please contact us at support@github.com </div> >>>>>>> iss53:index.html 69

Demo 2 (branch, checkout commit, merge, cherrypick, blame)

Die wichtigsten Befehle (3 / 4) git checkout commit Commit Index / Arbeitskopie git rm Datei aus Index und Arbeitskopie löschen git merge Mehrere Branches zusammenführen git cherrypick Einzelnen Commit an aktuellen Branch dranhängen git blame Letzte Änderung an Datei Zeile für Zeile anzeigen 71

Arbeiten im Team

Verteilte Versionskontrolle mit Server Ein zentrales Repository ermöglicht vereinfachten Austausch Server Computer A Repository Version 3... Working Copy File 1... Repository Version 3... Computer B Repository Version 3... Working Copy File 1... 73

Begriffe Remote Repository Fetch Push Ein externes Repository im Netzwek / Internet Die lokale Kopie des Remote Repositories im eigenen Repo aktualisieren 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" 74

Begriffe Remote Repository Fetch Push Ein externes Repository im Netzwek / Internet Die lokale Kopie des Remote Repositories im eigenen Repo aktualisieren 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" 75

Begriffe Remote Repository Fetch Push Ein externes Repository im Netzwek / Internet Die lokale Kopie des Remote Repositories im eigenen Repo aktualisieren 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" 76

Begriffe Remote Repository Fetch Push Ein externes Repository im Netzwek / Internet Die lokale Kopie des Remote Repositories im eigenen Repo aktualisieren 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" 77

Begriffe Remote Repository Fetch Push Ein externes Repository im Netzwek / Internet Die lokale Kopie des Remote Repositories im eigenen Repo aktualisieren 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" 78

Begriffe Remote Repository Fetch Push Ein externes Repository im Netzwek / Internet Die lokale Kopie des Remote Repositories im eigenen Repo aktualisieren 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" 79

Begriffe Remote Repository Fetch Push Ein externes Repository im Netzwek / Internet Die lokale Kopie des Remote Repositories im eigenen Repo aktualisieren 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" 80

~/project git clone me@git.company.com:project git.company.com 543 6f5 My Computer 81

~/project git clone me@git.company.com:project ~/project git.company.com 543 6f5 My Computer origin/ 543 6f5 HEAD 82

~/project git add ~/project git commit ~/project git.company.com 543 6f5 My Computer origin/ 543 6f5 HEAD 83

~/project git add ~/project git commit ~/project git.company.com 543 6f5 My Computer origin/ 543 6f5 c85 HEAD 84

~/project git add ~/project git commit ~/project git.company.com 543 6f5 My Computer origin/ 543 6f5 c85 3be HEAD 85

Jemand anderes arbeitet parallel und aktualisiert das Remote Repository vor uns git.company.com 543 6f5 My Computer origin/ 543 6f5 c85 3be HEAD 86

Jemand anderes arbeitet parallel und aktualisiert das Remote Repository vor uns git.company.com 543 6f5 b43 My Computer origin/ 543 6f5 c85 3be HEAD 87

Jemand anderes arbeitet parallel und aktualisiert das Remote Repository vor uns git.company.com 543 6f5 b43 aa4 My Computer origin/ 543 6f5 c85 3be HEAD 88

~/project git fetch ~/project git.company.com 543 6f5 b43 aa4 My Computer b43 aa4 origin/ 543 6f5 c85 3be HEAD 89

~/project git merge origin/ ~/project git.company.com 543 6f5 b43 aa4 My Computer b43 aa4 origin/ 543 6f5 c85 3be a23 HEAD 90

~/project git push origin : ~/project git.company.com 543 6f5 b43 aa4 c85 3be a23 My Computer b43 aa4 origin/ 543 6f5 c85 3be a23 HEAD 91

Rebase Workflow

experiment ~/my-prog git checkout ~/my-prog git add ~/my-prog git commit ~/my-prog git add ~/my-prog git commit ~/my-prog git checkout experiment b43 aa4 543 6f5 c85 3be HEAD 93

~/my-prog git checkout experiment ~/my-prog git rebase HEAD experiment b43 aa4 543 6f5 c85 3be 94

~/my-prog git checkout experiment ~/my-prog git rebase ~/my-prog HEAD experiment f21 834 543 6f5 c85 3be 95

~/my-prog git checkout experiment ~/my-prog git rebase ~/my-prog git checkout ~/my-prog experiment f21 834 543 6f5 c85 3be HEAD 96

~/my-prog git checkout experiment ~/my-prog git rebase ~/my-prog git checkout ~/my-prog git merge experiment experiment f21 834 543 6f5 c85 3be HEAD 97

~/my-prog git checkout experiment ~/my-prog git rebase ~/my-prog git checkout ~/my-prog git merge experiment ~/my-prog experiment 543 6f5 c85 3be f21 834 HEAD 98

~/my-prog git checkout experiment ~/my-prog git rebase ~/my-prog git checkout ~/my-prog git merge experiment ~/my-prog git branch -d experiment ~/my-prog 543 6f5 c85 3be f21 834 HEAD 99

Demo 3 (clone, fetch, push, pull, rebase)

Die wichtigsten Befehle (4 / 4) git clone url Remote Repo Lokales Repo git fetch remote Remote Tracking Branches des lokalen Repos aktualisieren git push remote branch Lokales Repo Remote Repo git pull Bei Tracking Branches: Abkürzung für git fetch; git merge git rebase branch Die Commits vom aktuellen Branch in Diffs umwandeln und den angegebenen Branch als Basis verwenden 101

Probeklausur

Tutorinnen & Tutoren gesucht für Info 1