Git Workshop



Git Workshop

0 0


git-workshop


On Github haw-sea-tutorium / git-workshop

Git Workshop

Marian Tietz & Lucas Jenß

bit.ly/S7PTX

Versionierung

Verwaltung von mehreren Versionen einer/mehrerer Datei(en).

Versionierung

  • Fehler passieren, es ist gut sie rückgängig machen zu können.
  • Fehler können nachverfolgt und einem Autor zugeordnet werden.

Versionierung

  • Migration von Arbeiten verschiedener Autoren kann automatisiert werden.
  • Fehler können semi-automatisch auf Code zurückgeführt werden.

Ich bin doch kein Unternehmen!!1elf

Jedem passieren Fehler.

Es ist immer gut ein Save Game zu haben!

Ablauf

Installation der Tools GitHub Account Erstellung Erste Schritte mit Git Git im Team

Tools

Installation

Github for Windows Github Console Tools (Mac)

Installation

Console2 (Windows)

Console2

Konfiguration von GitHub for Windows

Console2

Konfiguration der "Default Shell"

Console2

Ablauf

Installation der Tools GitHub Account Erstellung Erste Schritte mit Git Git im Team

GitHub Account

  • Registrierung hier.
  • Kostenlose "Private Repositories" via GitHub Edu (für später).

Ablauf

Installation der Tools GitHub Account Erstellung Erste Schritte mit Git Git im Team

Git Übersicht

Source: Why Git is better than X

The console

Öffnen

Mac

Windows

Let's get busy!

↓↓↓

Erstellen eines lokalen Repository

git init

Hinzufügen einer Datei

<eine Datei in den ordner legen>
git add <datei>
git commit
<eingeben einer commit message>

Änderungen machen:

<Editieren der datei>

git add <datei>

und dann:

git commit <datei>

Angucken der Log/Historie

git log
git show HEAD
git show HEAD^

Angucken der lokalen Änderungen

<editieren der datei>
git status
git diff

Zurücksetzen der Änderungen

git checkout <datei>

Löschen der Datei aus dem Repo

git rm <datei>

Änderung wird in den Index übertragen, ist aber noch nicht committed

git status

Löschen rückgängig machen

git reset HEAD <datei>
git checkout <datei>

Jetzt aber wirklich löschen

git rm <datei>

Löschen der Datei bestätigen

git commit
<commit message eingeben>

Einen Commit rückgängig machen

git log # -> Commit raussuchen
git revert <hash>

ODER

git revert HEAD

Lokal fertig gearbeitet, publizieren

git remote add origin <github url>
git push origin master

Auf einem anderen Rechner das Projekt fortführen

git clone <github url>

Order <reponame> mit dem Inhalt des Repository wird erstellt. Das remote 'origin' wird automatisch erstellt.

Ablauf

Installation der Tools GitHub Account Erstellung Erste Schritte mit Git Git im Team

Git im Team

Forken Clonen Änderungen hinzufügen Veröffentlichen

Git im Team

Forken

http://bit.ly/Rs3shO

Git im Team

Forken

Git im Team

Clonen

git clone <repository url> ziel-ordner/
Cloning into 'ziel-ordner'...
remote: Counting objects: 170, done.
remote: Compressing objects: 100% (112/112), done.
remote: Total 170 (delta 44), reused 162 (delta 36)
Receiving objects: 100% (170/170), 57.15 KiB, done.
Resolving deltas: 100% (44/44), done.

Git im Team

Jetzt seid ihr dran!

Forken Clonen Änderungen hinzufügen Veröffentlichen

Git im Team

  • Tut euch in Gruppen zusammen
  • Entscheidet euch, welches der geforkten Repositories das zentrale sein soll

Git im Team

"Besitzer" des zentralen Repos muss alle anderen als "Collaborator" einrichten

Git im Team

Macht eine Änderung, fügt sie hinzu und committed sie Pushed sie in euer eigenes Repository

Git im Team

Änderungen hinzufügen

OddEven.java
// ========================
// Insert code here please!
// ========================

Irgendeine Java-Methode (muss nicht funktionieren :)

Git im Team

Konflikte

  • Können auftreten wenn mehrere Leute die selbe Datei bearbeiten.

  • Werden angezeigt wenn ihr git pull ausführt

Git im Team

Konflikte

"Marker" in der Datei:

<<<<<<< HEAD:file.txt
Hello world
=======
Goodbye
>>>>>>> 77976da...:file.txt

Git im Team

  • Fügt das zentrale Repository als "remote" hinzu

git remote add zentral <github url>

Der Name für ein Remote ist frei wählbar!

Git im Team

Inspired by Better explained

Git im Team

Git im Team

Git im Team

Git im Team

Git im Team

Git im Team

Pushed eure Änderungen in das zentrale Repository

Further reading

The End