30
Mathematisch-Naturwissenschaftliche Fakultät Fachbereich Informatik Programmiersprachen und Softwaretechnik Das Tübinger Softwareprojekt Git & Social Coding — Workshop Arbeiten im Team

Das Tübinger Softwareprojektps.informatik.uni-tuebingen.de/.../collaboration-with-social-coding.pdf · Mathematisch-Naturwissenschaftliche Fakultät Fachbereich Informatik Programmiersprachen

Embed Size (px)

Citation preview

Page 1: Das Tübinger Softwareprojektps.informatik.uni-tuebingen.de/.../collaboration-with-social-coding.pdf · Mathematisch-Naturwissenschaftliche Fakultät Fachbereich Informatik Programmiersprachen

Mathematisch-Naturwissenschaftliche Fakultät Fachbereich Informatik Programmiersprachen und Softwaretechnik

Das Tübinger Softwareprojekt Git & Social Coding — Workshop

Arbeiten im Team

Page 2: Das Tübinger Softwareprojektps.informatik.uni-tuebingen.de/.../collaboration-with-social-coding.pdf · Mathematisch-Naturwissenschaftliche Fakultät Fachbereich Informatik Programmiersprachen

Mathematisch-Naturwissenschaftliche Fakultät Fachbereich Informatik Programmiersprachen und Softwaretechnik

Begriffe

“Remote Repository” Ein externes Repository im Netzwerk / Internet.

Page 3: Das Tübinger Softwareprojektps.informatik.uni-tuebingen.de/.../collaboration-with-social-coding.pdf · Mathematisch-Naturwissenschaftliche Fakultät Fachbereich Informatik Programmiersprachen

Mathematisch-Naturwissenschaftliche Fakultät Fachbereich Informatik Programmiersprachen und Softwaretechnik

Begriffe

“Remote Repository” Ein externes Repository im Netzwerk / Internet.

“Fetchen” Die lokale Kopie des Remote Repositories im eigenen Repos aktualisieren.

Page 4: Das Tübinger Softwareprojektps.informatik.uni-tuebingen.de/.../collaboration-with-social-coding.pdf · Mathematisch-Naturwissenschaftliche Fakultät Fachbereich Informatik Programmiersprachen

Mathematisch-Naturwissenschaftliche Fakultät Fachbereich Informatik Programmiersprachen und Softwaretechnik

Begriffe

“Remote Repository” Ein externes Repository im Netzwerk / Internet.

“Fetchen” Die lokale Kopie des Remote Repositories im eigenen Repos aktualisieren.

“Pushen” Die lokale Kopie des Remote Repositories zum externen Repository hochladen.

Page 5: Das Tübinger Softwareprojektps.informatik.uni-tuebingen.de/.../collaboration-with-social-coding.pdf · Mathematisch-Naturwissenschaftliche Fakultät Fachbereich Informatik Programmiersprachen

Mathematisch-Naturwissenschaftliche Fakultät Fachbereich Informatik Programmiersprachen und Softwaretechnik

Begriffe

“Remote Repository” Ein externes Repository im Netzwerk / Internet.

“Fetchen” Die lokale Kopie des Remote Repositories im eigenen Repos aktualisieren.

“Pushen” Die lokale Kopie des Remote Repositories zum externen Repository hochladen.

“Remote Branch” Referenz auf einen Branch in einem Remote Repository.

Page 6: Das Tübinger Softwareprojektps.informatik.uni-tuebingen.de/.../collaboration-with-social-coding.pdf · Mathematisch-Naturwissenschaftliche Fakultät Fachbereich Informatik Programmiersprachen

Mathematisch-Naturwissenschaftliche Fakultät Fachbereich Informatik Programmiersprachen und Softwaretechnik

Begriffe

“Remote Repository” Ein externes Repository im Netzwerk / Internet.

“Fetchen” Die lokale Kopie des Remote Repositories im eigenen Repos aktualisieren.

“Pushen” Die lokale Kopie des Remote Repositories zum externen Repository hochladen.

“Remote Branch” Referenz auf einen Branch in einem Remote Repository.

“Remote Tracking Branch” Referenz auf einen Branch in einem Remote Repository, welche automatisch aktualisiert wird.

Page 7: Das Tübinger Softwareprojektps.informatik.uni-tuebingen.de/.../collaboration-with-social-coding.pdf · Mathematisch-Naturwissenschaftliche Fakultät Fachbereich Informatik Programmiersprachen

Mathematisch-Naturwissenschaftliche Fakultät Fachbereich Informatik Programmiersprachen und Softwaretechnik

Begriffe

“Remote Repository” Ein externes Repository im Netzwerk / Internet.

“Fetchen” Die lokale Kopie des Remote Repositories im eigenen Repos aktualisieren.

“Pushen” Die lokale Kopie des Remote Repositories zum externen Repository hochladen.

“Remote Branch” Referenz auf einen Branch in einem Remote Repository.

“Remote Tracking Branch” Referenz auf einen Branch in einem Remote Repository, welche automatisch aktualisiert wird.

“Tracking Branch” Lokale Kopie eines Remote Tracking Branches mit einer Referenz auf den “upstream branch”.

Page 8: Das Tübinger Softwareprojektps.informatik.uni-tuebingen.de/.../collaboration-with-social-coding.pdf · Mathematisch-Naturwissenschaftliche Fakultät Fachbereich Informatik Programmiersprachen

Mathematisch-Naturwissenschaftliche Fakultät Fachbereich Informatik Programmiersprachen und Softwaretechnik

Beispiel Workflow

Existierendes Remote-Repository klonen 1. Erzeugt ein neues lokales Repository 2. Kopiert das Remote-Repository unter dem

lokalen Namen origin. 3. Erstellt einen Remote-Branch (Referenz)

origin/master 4. Erstellt einen entsprechenden lokalen

Tracking-Branch master.

git.ourcompany.com

My Computer

0b743 a6b4c f4265

origin/master

0b743 a6b4c f4265

master

master

Remote Tracking Branch

Local Tracking Branch

git clone [email protected]:project.git

Page 9: Das Tübinger Softwareprojektps.informatik.uni-tuebingen.de/.../collaboration-with-social-coding.pdf · Mathematisch-Naturwissenschaftliche Fakultät Fachbereich Informatik Programmiersprachen

Mathematisch-Naturwissenschaftliche Fakultät Fachbereich Informatik Programmiersprachen und Softwaretechnik

Beispiel Workflow

Paralleles Entwickeln Sowohl im Remote-Repository als auch lokal in master wurde weiterentwickelt.

git.ourcompany.com

My Computer

0b743 a6b4c f4265 a38de 893cf

origin/master

0b743 a6b4c f4265 31b8e 190a3

Someone else pushes

master

master

Page 10: Das Tübinger Softwareprojektps.informatik.uni-tuebingen.de/.../collaboration-with-social-coding.pdf · Mathematisch-Naturwissenschaftliche Fakultät Fachbereich Informatik Programmiersprachen

Mathematisch-Naturwissenschaftliche Fakultät Fachbereich Informatik Programmiersprachen und Softwaretechnik

git.ourcompany.com

My Computer

Beispiel Workflow

Änderungen “fetchen” 1. Aktualisiert die lokale Kopie des Remote

Repositories. 2. Macht keine Änderungen am Tracking

Branch master.

0b743 a6b4c f4265 31b8e 190a3

a38de 893cf

origin/master

master

0b743 a6b4c f4265 31b8e 190a3

git fetch origin

master

Page 11: Das Tübinger Softwareprojektps.informatik.uni-tuebingen.de/.../collaboration-with-social-coding.pdf · Mathematisch-Naturwissenschaftliche Fakultät Fachbereich Informatik Programmiersprachen

Mathematisch-Naturwissenschaftliche Fakultät Fachbereich Informatik Programmiersprachen und Softwaretechnik

git.ourcompany.com

My Computer

Beispiel Workflow

Änderungen lokal mergen Achtung: origin/master wird durch merge zunächst nicht geändert!

0b743 a6b4c f4265 31b8e 190a3

a38de 893cf

origin/master

0b743 a6b4c f4265 31b8e 190a3

f345a

master

git merge origin/master

master

Page 12: Das Tübinger Softwareprojektps.informatik.uni-tuebingen.de/.../collaboration-with-social-coding.pdf · Mathematisch-Naturwissenschaftliche Fakultät Fachbereich Informatik Programmiersprachen

Mathematisch-Naturwissenschaftliche Fakultät Fachbereich Informatik Programmiersprachen und Softwaretechnik

Beispiel Workflow

Änderungen pushen

git.ourcompany.com

0b743 a6b4c f4265 31b8e 190a3

a38de 893cf f345a

My Computer

0b743 a6b4c f4265 31b8e 190a3

a38de 893cf

origin/master

f345a

master

git push origin master

master

Page 13: Das Tübinger Softwareprojektps.informatik.uni-tuebingen.de/.../collaboration-with-social-coding.pdf · Mathematisch-Naturwissenschaftliche Fakultät Fachbereich Informatik Programmiersprachen

Mathematisch-Naturwissenschaftliche Fakultät Fachbereich Informatik Programmiersprachen und Softwaretechnik

Git Pull

git pull

eine Abkürzung für

git fetch git merge

Für Tracking Branches ist

Page 14: Das Tübinger Softwareprojektps.informatik.uni-tuebingen.de/.../collaboration-with-social-coding.pdf · Mathematisch-Naturwissenschaftliche Fakultät Fachbereich Informatik Programmiersprachen

Mathematisch-Naturwissenschaftliche Fakultät Fachbereich Informatik Programmiersprachen und Softwaretechnik

Das Tübinger Softwareprojekt Git & Social Coding — Workshop

Social Coding

Page 15: Das Tübinger Softwareprojektps.informatik.uni-tuebingen.de/.../collaboration-with-social-coding.pdf · Mathematisch-Naturwissenschaftliche Fakultät Fachbereich Informatik Programmiersprachen

Mathematisch-Naturwissenschaftliche Fakultät Fachbereich Informatik Programmiersprachen und Softwaretechnik

Warum?

Nicht nur für Open Source:- Räumlich und zeitlich verteilte Teams. - Diskussionen über Source Code werden

nicht schriftlich festgehalten. - Code-Reviews erfordern

Terminvereinbarungen und Präsenzzeit.

Page 16: Das Tübinger Softwareprojektps.informatik.uni-tuebingen.de/.../collaboration-with-social-coding.pdf · Mathematisch-Naturwissenschaftliche Fakultät Fachbereich Informatik Programmiersprachen

Mathematisch-Naturwissenschaftliche Fakultät Fachbereich Informatik Programmiersprachen und Softwaretechnik

Social Coding

Remote Repository

Eine Social Coding Plattform stellt zur Verfügung:

Page 17: Das Tübinger Softwareprojektps.informatik.uni-tuebingen.de/.../collaboration-with-social-coding.pdf · Mathematisch-Naturwissenschaftliche Fakultät Fachbereich Informatik Programmiersprachen

Mathematisch-Naturwissenschaftliche Fakultät Fachbereich Informatik Programmiersprachen und Softwaretechnik

Social Coding

Remote Repository

Eine Social Coding Plattform stellt zur Verfügung:

Page 18: Das Tübinger Softwareprojektps.informatik.uni-tuebingen.de/.../collaboration-with-social-coding.pdf · Mathematisch-Naturwissenschaftliche Fakultät Fachbereich Informatik Programmiersprachen

Mathematisch-Naturwissenschaftliche Fakultät Fachbereich Informatik Programmiersprachen und Softwaretechnik

Social Coding

Remote Repository

Eine Social Coding Plattform stellt zur Verfügung:

Social Network

Page 19: Das Tübinger Softwareprojektps.informatik.uni-tuebingen.de/.../collaboration-with-social-coding.pdf · Mathematisch-Naturwissenschaftliche Fakultät Fachbereich Informatik Programmiersprachen

Mathematisch-Naturwissenschaftliche Fakultät Fachbereich Informatik Programmiersprachen und Softwaretechnik

Social Coding

Remote Repository

Eine Social Coding Plattform stellt zur Verfügung:

Social Network

Page 20: Das Tübinger Softwareprojektps.informatik.uni-tuebingen.de/.../collaboration-with-social-coding.pdf · Mathematisch-Naturwissenschaftliche Fakultät Fachbereich Informatik Programmiersprachen

Mathematisch-Naturwissenschaftliche Fakultät Fachbereich Informatik Programmiersprachen und Softwaretechnik

Social Coding

Remote Repository

Eine Social Coding Plattform stellt zur Verfügung:

Social Network

Kommentieren von Commits / Erwähnen von Nutzern

Page 21: Das Tübinger Softwareprojektps.informatik.uni-tuebingen.de/.../collaboration-with-social-coding.pdf · Mathematisch-Naturwissenschaftliche Fakultät Fachbereich Informatik Programmiersprachen

Mathematisch-Naturwissenschaftliche Fakultät Fachbereich Informatik Programmiersprachen und Softwaretechnik

Social Coding

Remote Repository

Eine Social Coding Plattform stellt zur Verfügung:

Issue Tracker

Social Network

Kommentieren von Commits / Erwähnen von Nutzern

Page 22: Das Tübinger Softwareprojektps.informatik.uni-tuebingen.de/.../collaboration-with-social-coding.pdf · Mathematisch-Naturwissenschaftliche Fakultät Fachbereich Informatik Programmiersprachen

Mathematisch-Naturwissenschaftliche Fakultät Fachbereich Informatik Programmiersprachen und Softwaretechnik

Social Coding

Remote Repository

Eine Social Coding Plattform stellt zur Verfügung:

Issue Tracker

Social Network

Kommentieren von Commits / Erwähnen von Nutzern

Page 23: Das Tübinger Softwareprojektps.informatik.uni-tuebingen.de/.../collaboration-with-social-coding.pdf · Mathematisch-Naturwissenschaftliche Fakultät Fachbereich Informatik Programmiersprachen

Mathematisch-Naturwissenschaftliche Fakultät Fachbereich Informatik Programmiersprachen und Softwaretechnik

Social Coding

Remote Repository

Eine Social Coding Plattform stellt zur Verfügung:

Issue Tracker

Social Network

Integration von Issues und Commits

Kommentieren von Commits / Erwähnen von Nutzern

Page 24: Das Tübinger Softwareprojektps.informatik.uni-tuebingen.de/.../collaboration-with-social-coding.pdf · Mathematisch-Naturwissenschaftliche Fakultät Fachbereich Informatik Programmiersprachen

Mathematisch-Naturwissenschaftliche Fakultät Fachbereich Informatik Programmiersprachen und Softwaretechnik

Social Coding

Remote Repository

Eine Social Coding Plattform stellt zur Verfügung:

Issue Tracker

Social Network

Integration von Issues und Commits

Kommentieren von Commits / Erwähnen von Nutzern

Page 25: Das Tübinger Softwareprojektps.informatik.uni-tuebingen.de/.../collaboration-with-social-coding.pdf · Mathematisch-Naturwissenschaftliche Fakultät Fachbereich Informatik Programmiersprachen

Mathematisch-Naturwissenschaftliche Fakultät Fachbereich Informatik Programmiersprachen und Softwaretechnik

Social Coding

Remote Repository

Eine Social Coding Plattform stellt zur Verfügung:

Issue Tracker

Social Network

Integration von Issues und Commits

Kommentieren von Commits / Erwähnen von Nutzern

Kommentieren von Issues / Erwähnen von Nutzern

Page 26: Das Tübinger Softwareprojektps.informatik.uni-tuebingen.de/.../collaboration-with-social-coding.pdf · Mathematisch-Naturwissenschaftliche Fakultät Fachbereich Informatik Programmiersprachen

Mathematisch-Naturwissenschaftliche Fakultät Fachbereich Informatik Programmiersprachen und Softwaretechnik

Social Coding

Remote Repository

Eine Social Coding Plattform stellt zur Verfügung:

Issue Tracker

Social Network

Integration von Issues und Commits

Kommentieren von Commits / Erwähnen von Nutzern

Kommentieren von Issues / Erwähnen von Nutzern

Page 27: Das Tübinger Softwareprojektps.informatik.uni-tuebingen.de/.../collaboration-with-social-coding.pdf · Mathematisch-Naturwissenschaftliche Fakultät Fachbereich Informatik Programmiersprachen

Mathematisch-Naturwissenschaftliche Fakultät Fachbereich Informatik Programmiersprachen und Softwaretechnik

Social Coding

Remote Repository

Eine Social Coding Plattform stellt zur Verfügung:

Issue Tracker

Social Network

Integration von Issues und Commits

Kommentieren von Commits / Erwähnen von Nutzern

Kommentieren von Issues / Erwähnen von Nutzern

Online Code Reviews durch

Pull Requests

Page 28: Das Tübinger Softwareprojektps.informatik.uni-tuebingen.de/.../collaboration-with-social-coding.pdf · Mathematisch-Naturwissenschaftliche Fakultät Fachbereich Informatik Programmiersprachen

Mathematisch-Naturwissenschaftliche Fakultät Fachbereich Informatik Programmiersprachen und Softwaretechnik

Pull Requests

- Issues mit Verknüpfung zu zwei Branches (“Source” / “Target”) - Anfrage Source in Target zu mergen - Kann genutzt werden um:

- Änderungen in einem Branch vorzuschlagen und zu diskutieren (keine direkte merge-Absicht)

- Änderungen zu “reviewen” bevor sie gemerged werden (direkte merge-Absicht)

Zentrales Tool zur Kooperation (und QS) auf Distanz!

Page 29: Das Tübinger Softwareprojektps.informatik.uni-tuebingen.de/.../collaboration-with-social-coding.pdf · Mathematisch-Naturwissenschaftliche Fakultät Fachbereich Informatik Programmiersprachen

Mathematisch-Naturwissenschaftliche Fakultät Fachbereich Informatik Programmiersprachen und Softwaretechnik

Pull Requests

- Issues mit Verknüpfung zu zwei Branches (“Source” / “Target”) - Anfrage Source in Target zu mergen - Kann genutzt werden um:

- Änderungen in einem Branch vorzuschlagen und zu diskutieren (keine direkte merge-Absicht)

- Änderungen zu “reviewen” bevor sie gemerged werden (direkte merge-Absicht)

Zentrales Tool zur Kooperation (und QS) auf Distanz!

Page 30: Das Tübinger Softwareprojektps.informatik.uni-tuebingen.de/.../collaboration-with-social-coding.pdf · Mathematisch-Naturwissenschaftliche Fakultät Fachbereich Informatik Programmiersprachen

Mathematisch-Naturwissenschaftliche Fakultät Fachbereich Informatik Programmiersprachen und Softwaretechnik

Das Tübinger Softwareprojekt Git & Social Coding — Workshop

Live Demo