Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Mitmachen bei Git(Hub)-Projekten!

Mitmachen bei Git(Hub)-Projekten!

Sehr viele Open-Source-Projekte hosten ihre Projekte auf GitHub. Einige Projekte wie Debian und GNOME unterhalten wiederum ihre eigenen GitLab-Server. Dieser Vortrag richtet sich an Einsteiger, die bei solchen Projekten mitmachen wollen, aber noch nicht durch die Begriffe wie Fork, Pull-Requests und Code-Review durchblicken. Der Fokus liegt dabei auf GitHub und GitLab mit einem vergleichbaren Workflow. Der Vortrag ist dabei gespickt mit Tipps und Tricks über den GitHub-Workflow sowie Kommunikations- und Organisationshinweisen bei Projekten.

Sujeevan Vijayakumaran

March 09, 2018
Tweet

More Decks by Sujeevan Vijayakumaran

Other Decks in Technology

Transcript

  1. Mitmachen bei Git(Hub)-Projekten! Sujeevan Vijayakumaran @svijee || @credativDE svij.org ||

    credativ.de 10. März 2018 Sujeevan Vijayakumaran credativ GmbH 1 / 35
  2. Was erzähle ich heute? Warum sollte ich mitmachen? Struktur und

    Organisation von Open Source Projekten Was ist überhaupt Git und was ist GitHub und GitLab? Fork, Pull-Request, hää? Der GitHub-Workflow Verlosung Sujeevan Vijayakumaran credativ GmbH 2 / 35
  3. Warum sollte ich überhaupt mitmachen? Für sich selbst: Kenntnisse erweitern

    neue Leute kennenlernen von den neuen Kontakten lernen macht sich auch gut auf dem Lebenslauf ;) Sujeevan Vijayakumaran credativ GmbH 3 / 35
  4. Warum sollte ich überhaupt mitmachen? Für sich selbst: Kenntnisse erweitern

    neue Leute kennenlernen von den neuen Kontakten lernen macht sich auch gut auf dem Lebenslauf ;) Für die Community: unnötige (private) Forks vermeiden Verbesserungen der Allgemeinheit zur Verfügung stellen Projekte am Leben halten Sujeevan Vijayakumaran credativ GmbH 3 / 35
  5. Welche Optionen habe ich zum mitmachen? Nicht nur Programmieren! Dokumentation

    Design Ideen Organisation Support Testen Sujeevan Vijayakumaran credativ GmbH 4 / 35
  6. Struktur und Organisation von Open Source Projekten Ausschau halten nach

    folgenden Dateien: LICENSE README CONTRIBUTING CODE_OF_CONDUCT Sujeevan Vijayakumaran credativ GmbH 5 / 35
  7. Struktur und Organisation von Open Source Projekten Issue Tracker Pull

    Requests Foren oder Mailing Listen Chat Sujeevan Vijayakumaran credativ GmbH 6 / 35
  8. Abbildung: »If that doesn’t fix it, git.txt contains the phone

    number of a friend of mine who understands git. Just wait through a few minutes of ’It’s really pretty simple, just think of branches as...’ and eventually you’ll learn the commands that will fix everything.« »xkcd: Git«, © Randall Munroe (xkcd.com/1597) ist lizenziert unter der Creative Commons Lizenz CC BY-NC 2.5 Sujeevan Vijayakumaran credativ GmbH 7 / 35
  9. Was ist eine Versionsverwaltung? Verwaltung von Versionen vortrag_v1, vortrag_v2, vortrag_v3,...

    vortrag_final votrag_final_new Sujeevan Vijayakumaran credativ GmbH 8 / 35
  10. Warum eine Versionsverwaltung? Nachvollziehbarkeit „Springen“ zwischen Versionen Teamwork Angereichert mit

    weiteren Informationen: Wer? (Autor) Wann? (Datum mit Uhrzeit) Was? (Änderungsnotiz) Sujeevan Vijayakumaran credativ GmbH 9 / 35
  11. Verteilte Versionsverwaltung Git, Bazaar (bzr), Mercurial (hg) kompletter Klon liegt

    auf Clients + Server kein unnötiger Netzwerk-Traffic höhere Datensicherheit Sujeevan Vijayakumaran credativ GmbH 10 / 35
  12. Was ist GitHub? Git-Server mit Web-UI Kollaboratives Zusammenarbeiten Issue-Tracker und

    Project-Management GitHub selbst ist Closed Source Hosting zahlreicher Open Source Projekte Sujeevan Vijayakumaran credativ GmbH 11 / 35
  13. Und was ist mit GitLab? Git-Server mit Web-UI Kollaboratives Zusammenarbeiten

    Issue-Tracker und Project-Management GitLab selbst ist zum Teil Open Source (Open Core) Selbst-Hosting möglich Projekte wie Debian und GNOME nutzen eigene GitLab-Instanz Sujeevan Vijayakumaran credativ GmbH 12 / 35
  14. Wie bringe ich nun Änderungen an einem Repository ein? 1.

    Forken 2. Klonen 3. Branch erstellen 4. Änderungen hinzufügen 5. Pushen 6. Pull-Request anlegen Sujeevan Vijayakumaran credativ GmbH 13 / 35
  15. Fork – Was ist das eigentlich? Eine Gabel! Klon des

    Repositorys auf dem GitHub-Server Volle Schreibrechte im Fork Sujeevan Vijayakumaran credativ GmbH 14 / 35
  16. Fork – Was ist das eigentlich? credativ/elephant-shed ↓ Fork ↓

    svijee/elephant-shed Sujeevan Vijayakumaran credativ GmbH 16 / 35
  17. Klon → Branch → Push git clone [email protected]:svijee/elephant-shed.git cd elephant-shed

    git checkout -b fix-typo // Änderungen durchführen git add ... git commit ... Sujeevan Vijayakumaran credativ GmbH 17 / 35
  18. Klon → Branch → Push git clone [email protected]:svijee/elephant-shed.git cd elephant-shed

    git checkout -b fix-typo // Änderungen durchführen git add ... git commit ... git push origin fix-typo Sujeevan Vijayakumaran credativ GmbH 17 / 35
  19. Pull-Request „Nimm bitte meine Änderung an!“ Quell-Branch und Ziel-Branch mergen

    wollen Code-Review Sujeevan Vijayakumaran credativ GmbH 18 / 35
  20. Pull-Request: Hinweise Nur, weil ihr eine Änderung gemacht hat, muss

    der Maintainer es nicht annehmen Sujeevan Vijayakumaran credativ GmbH 21 / 35
  21. Pull-Request: Hinweise Nur, weil ihr eine Änderung gemacht hat, muss

    der Maintainer es nicht annehmen Issues, Qualität und Dokumentation beachten! Sujeevan Vijayakumaran credativ GmbH 21 / 35
  22. Pull-Request: Hinweise Nur, weil ihr eine Änderung gemacht hat, muss

    der Maintainer es nicht annehmen Issues, Qualität und Dokumentation beachten! Kommunikation ist wichtig! (Vorher, währenddessen und danach) Sujeevan Vijayakumaran credativ GmbH 21 / 35
  23. Pull-Request: Hinweise Nur, weil ihr eine Änderung gemacht hat, muss

    der Maintainer es nicht annehmen Issues, Qualität und Dokumentation beachten! Kommunikation ist wichtig! (Vorher, währenddessen und danach) „12 Gründe, warum dein Patch immer abgelehnt wird“ um 16 Uhr (Ralf Lang) Sujeevan Vijayakumaran credativ GmbH 21 / 35
  24. Pull-Request: Rebase oder Merge? Was ist ein Merge? Was ist

    ein Rebase? Sujeevan Vijayakumaran credativ GmbH 22 / 35
  25. Pull-Request: Rebase oder Merge? Was ist ein Merge? Was ist

    ein Rebase? Beides sind Methoden, um Branches zusammen zu führen. Sujeevan Vijayakumaran credativ GmbH 22 / 35
  26. Noch ein paar Hinweise Eine Änderung = Ein Pull-Request Eine

    Teil-Änderung = Ein Commit Commits so klein wie möglich und so groß wie nötig machen! Ordentliche und nachvollziehbare Commit-Nachrichten wählen! Sujeevan Vijayakumaran credativ GmbH 29 / 35
  27. Verlosung: Git-Buch „Mein“ Git-Buch Verlag: mitp, 2016 Preis: 29,99€ (Buch),

    25,99€ (Ebook) Buch basiert auf Tutorial auf meinem Blog svij.org Sujeevan Vijayakumaran credativ GmbH 33 / 35
  28. credativ is hiring! Linux- und Open Source-Einsteiger Linux- und Open

    Source-Spezialist Linux- und Open Source-Spezialist (Home-Office) Linux- und Open Source-Spezialist (Configuration-Management) Linux- und Open Source-Spezialist (Datenbanken) Auszubildende/-r zur/-m Fachinformatiker/-in Student/-in für Bachelor- oder Masterarbeit Werksstudent/-in / Praktikant-/in Mehr Informationen unter https://credativ.de/ueber-credativ/stellenangebote Sujeevan Vijayakumaran credativ GmbH 34 / 35