Ziel

Starte ein Repository mit einer anderen Person und hole Feedback zu deinen Änderungen ein.

Übersicht zur Aufgabe

Bis jetzt hast du alleine in einem Repository gearbeitet. Aber könntest du auch mit deinen Teamkollegen an einem Repository zusammenarbeiten? Dem steht nichts im Wege – ob ihr euch nun im gleichen Raum befindet oder im ganzen Universum verteilt seid.

Dauer Zielpublikum Voraussetzungen
15 Minuten Du verfügst über etwas Erfahrung in der Arbeit mit Bitbucket Cloud. Falls nicht, absolviere eines unserer Anfänger-Tutorials. Für Bitbucket Cloud registrieren
Keine Alle, die Bitbucket Cloud in Kombination mit einer Git-GUI vorziehen Für Sourcetree registrieren

Informationen zu Branches und Pull-Anfragen

Wenn du in einem Team mit mehreren Bitbucket-Benutzern arbeitest, solltest du an deinem eigenen Codesatz separat von der Haupt-Codebasis arbeiten. Mit Branches kannst du genau das tun. Ein Branch ist eine unabhängige Entwicklungslinie für dein Repository. Stell ihn dir vor wie ein komplett neues Arbeitsverzeichnis inklusive neuer Staging-Umgebung und neuem Projektverlauf. Nachdem du einen Branch erstellt hast, überträgst du den Code, an dem du arbeitest, per Commit in den Branch, pullst Updates aus Bitbucket, um deinen Branch auf dem aktuellen Stand zu halten, und pushst dann deine ganze Arbeit in Bitbucket.

Sobald du Codeänderungen auf einem Branch in Bitbucket hast, kannst du eine Pull-Anfrage erstellen, um den Code reviewen zu lassen. Deine Teamkollegen kommentieren deinen Code mit Feedback und Fragen und genehmigen dann (hoffentlich) die Pull-Anfrage. Wenn du genug Genehmigungen erhalten hast, mergst du die Pull-Anfrage, um deinen Branch in den Hauptcode zu mergen.

Repository erstellen und einen Teamkollegen hinzufügen

Du bist gerade an der Bitbucket-Raumstation angekommen und es ist Zeit für den Orientierungsprozess. Dazu gehört, Updates an deinem Willkommenspaket vorzunehmen und diese genehmigen zu lassen. Zum Einstieg erläutern wir Schritt für Schritt, wie du ein Team-Repository mit ein paar Inhalten erstellen und anderen Zugriffsrechte dafür erteilen kannst.

  1. Klicke in der allgemeinen Seitenleiste auf + und wähle unter Create (Erstellen) die Option Repository .

  2. Stelle sicher, dass das von dir erstellte Team der Owner (Besitzer) des Repositorys ist.

  3. Gib für Project name (Projektname) und Repository name (Repository-Name) einen beliebigen Namen ein. Falls dir nichts einfällt, schlagen wir jeweils Willkommenspaket und Erste Eindrücke vor.

  4. Wähle für Include a README? (README einschließen?) eine der Optionen für Yes (Ja).

  5. Wähle für Version control system (Versionskontrollsystem) eine Option für den Repository-Typ, den du erstellen möchtest. Lass die Optionen unverändert, wenn du dir nicht sicher bist.

  6. Klicke auf Create repository (Repository erstellen). Daraufhin gelangst du zur Ansicht Source (Quelle) deines brandneuen Repositorys.

  7. Wähle in Source (Quelle) > Add file (Datei hinzufügen).

  8. Gib der Datei den Namen survey.html. Kopiere dann diesen Code und füge ihn in den Haupttextbereich ein.

\<\!DOCTYPE html><html><head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <style media="screen" type="text/css"> body { margin: auto; width: 700px; color: #FFFFFF; font-family: Arial, sans-serif; background-color: #172B4D; } body>h1 { margin: 50px; font-size: 50px; text-align: center; color: #0052CC; } </style></head><body> <h1>Team up in space</h1> <p> Welcome to the team! You've made it this far so we know that you've got the potential to do great things. Because you're going to be collaborating with other awesome people, anything you add needs to be code reviewed and approved. That's just how a team works! You should have already created a branch and checked it out locally. If you haven't, go back to the tutorial and do that now. We'll be here. </p> <p> Because you're on your own branch, you can go crazy. Spice up this file any way you like. Add more files to this repository if you see fit. If want to take it slow and are just here to learn about pull requests, you can use this opportunity to fill out our short questionaire. </p> <br> <p> <b>Question 1</b>: Have you used pull requests before? </p> <p> <b>Answer 1</b>: **** Your answer here **** </p> <p> <b>Question 2</b>: Why do you want to learn about code review? </p> <p> <b>Answer 2</b>: **** Your answer here **** </p> <p> <b>Question 3</b>: Who do you plan to work with on Bitbucket? </p> <p> <b>Answer 3</b>: **** Your answer here **** </p></body></html>
  1. Klicke auf Commit und im Dialogfeld noch einmal auf Commit.

Dein Repository sieht jetzt ziemlich gut aus. Möchtest du dich ein wenig umschauen? Wenn du auf Settings (Einstellungen) klickst und die Seite User and groups access (Zugriff für Benutzer und Gruppen) aufrufst, kannst du sehen, dass der von dir hinzugefügte Teamkollege breezycloud über die Gruppe Developers (Entwickler) Zugriff auf das Repository hat.

Branch klonen und Änderungen an einem neuen Branch vornehmen

In einem typischen Teamkontext hättest du das Repository vor dem Erstellen eines Branch höchstwahrscheinlich bereits geklont. Deshalb tun wir das zunächst, bevor du deinen eigenen Branch anlegst.

Wenn du die Befehlszeile verwendest

Schritt 1: Klone dein Repository auf deinem lokalen System.

Bringen wir das Ganze auf dein lokales System, damit du richtig loslegen kannst.

  1. Klicke im Repository auf die Schaltfläche Clone (Klonen) oben rechts.
    Bitbucket zeigt das Dialogfeld Clone this repository (Dieses Repository klonen) an. Im Dialogfeld zum Klonen ist als Protokoll standardmäßig HTTPS oder SSH festgelegt (je nach deinen Einstellungen). Daher kannst du das festgelegte Standardprotokoll einfach übernehmen.
  2. Kopiere den Klonbefehl.

  3. Wechsle in einem Terminalfenster in das lokale Verzeichnis, in das du dein Repository klonen möchtest.

$ cd ~/<path_to_directory>
  1. Füge den aus Bitbucket kopierten Befehl ein, wie zum Beispiel:
$ git clone https://breezy@bitbucket.org/powerstars/first-impressions.git

Cloning into 'first-impressions'...
Password for 'https://breezycloud@bitbucket.org': 
remote: Counting objects: 6, done.
remote: Compressing objects: 100% (5/5), done.
remote: Total 6 (delta 1), reused 0 (delta 0)
Unpacking objects: 100% (6/6), done.

Weitere Details findest du in unserem Video zum Klonen:

Schritt 2: Einen Branch erstellen und lokal pullen

Nachdem du dein Repository eingerichtet hast, kann der Spaß beginnen. Du kannst Branches lokal oder über Bitbucket erstellen. Legen wir für dieses Tutorial einen Branch über Bitbucket an.

  1. Klicke im linken Navigationsbereich auf Branches . Du kannst sehen, dass du schon einen Branch hast – deinen Haupt-Branch (master).

  2. Klicke in der oberen rechten Ecke auf Create a branch (Einen Branch erstellen).

  3. Nachdem du einen Branch erstellt hast, musst du ihn auf deinem lokalen System auschecken. Bitbucket bietet dir einen fetch- und checkout-Befehl, den du kopieren und in deine Befehlszeile einfügen kannst. Das sieht ungefähr so aus:

$ git fetch && git checkout my-updates

Password for 'https://breezycloud@bitbucket.org': 
From https://bitbucket.org/planetbreezycloud/first-impressions
 * [new branch]      my-updates -> origin/my-updates
Branch 'my-updates' set up to track remote branch 'my-updates' from 'origin'.
Switched to a new branch 'my-updates'

Wie du sehen kannst, hast du lokal zu deinem neuen Branch gewechselt. Jetzt kannst du die separate Codezeile bearbeiten und pushen.

Schritt 3: Änderungen an dem Branch vornehmen

Jetzt musst du ein paar Änderungen an deinem Repository vornehmen. Dabei sind deiner Kreativität keine Grenzen gesetzt. Ändere die CSS-Datei. Füge mehr Dateien hinzu. Schreibe eine Weltraumoper. Oder beantworte einfach die Fragen.

  1. Öffne die Datei mit dem Namen survey.html (oder einem anderen von dir gewählten Namen) mit einem Texteditor.

  2. Nimm beliebige große oder kleine Änderungen vor, speichere die Datei und schließe sie dann.

  3. In deinem Terminalfenster solltest du immer noch im Repository-Verzeichnis sein, sofern du nichts geändert hast. Zeige mit git status den Status des Repositorys an. Du solltest die Datei survey.html sehen, die du geändert hast. Wenn du andere Dateien hinzugefügt oder bearbeitet hast, werden dir diese auch angezeigt.

$ git status
On branch my-updates
Your branch is up-to-date with 'origin/my-updates'.
Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git checkout -- <file>..." to discard changes in working directory)
        modified:   survey.html
no changes added to commit (use "git add" and/or "git commit -a")
  1. Füge deine Änderungen mit git add lokal hinzu:
$ git add survey.html
  1. Committe deine Änderungen lokal mit git commit -m "deine Commit-Nachricht":
$ git commit -m "Answered questions"
[my-updates 7506040] Answered questions
 1 file changed, 3 insertions(+), 3 deletions(-)
  1. Gib git push origin ein, um die Änderungen an deinem Branch auf Bitbucket zu pushen, und gib dein Passwort ein, um den Push der Änderungen abzuschließen.
$ git push origin my-updates

Password for 'https://breezycloud@bitbucket.org': 

Counting objects: 3, done.

Delta compression using up to 8 threads.

Compressing objects: 100% (3/3), done.

Writing objects: 100% (3/3), 350 bytes | 350.00 KiB/s, done.

Total 3 (delta 1), reused 0 (delta 0)

To https://bitbucket.org/planetbreezycloud/first-impressions.git

   454ccaf..7506040  my-updates -> my-updates

Branch master set up to track remote branch master from origin.
  1. Klicke in Bitbucket auf die Seite Source (Quelle) deines Repositorys. Im Drop-down-Menü solltest du beide Branches sehen können. Alle weiteren Commits, die du auf meine-Updates anwendest, werden ebenfalls in diesem Branch angezeigt.

Wenn du Sourcetree verwendest

Schritt 1: Klone dein Repository auf deinem lokalen System.

Bringen wir das Ganze auf dein lokales System, damit du richtig loslegen kannst.

  1. Klicke im Repository in der allgemeinen Seitenleiste auf + und wähle unter Get to work (Loslegen) die Option Clone this repository (Dieses Repository klonen).
  2. Klicke auf die Schaltfläche Clone in Sourcetree (In Sourcetree klonen).
  3. Aktualisiere im Fenster Clone New (Neuer Klon) den Destination Path (Zielpfad) zu /erste-Eindrücke/.
  4. Klicke auf die Schaltfläche Clone (Klonen).

Im Abschnitt unseres Videos zum Klonen eines Repositorys siehst du, wie's geht:

Schritt 2: Einen Branch erstellen und lokal pullen

Nachdem du dein Repository eingerichtet hast, kann der Spaß beginnen. Da sich das Konzept von Branches nicht nur auf Bitbucket beschränkt, kannst du auch lokal einen anlegen. Für dieses Tutorial erstellen wir jedoch einen Branch in Bitbucket.

  1. Klicke im linken Navigationsbereich auf Branches . Du kannst sehen, dass du schon einen Branch hast – deinen Haupt-Branch.

  2. Klicke in der oberen rechten Ecke auf Create a branch (Einen Branch erstellen).

  3. Gib unter Branch name einen Namen für den Branch ein und klicke dann auf "Create" (Erstellen). Wenn du dir nicht sicher bist, wie du deinen Branch nennen sollst, könntest du zum Beispiel so etwas wie "meine-Updates" wählen.

  4. Nachdem du einen Branch erstellt hast, musst du ihn von deinem lokalen System aus auschecken. Klicke dazu auf die Schaltfläche Check out in Sourcetree (In Sourcetree auschecken).

  5. Klicke im Dialogfeld Checkout Existing (Bestehenden auschecken) in Sourcetree auf Checkout (Auschecken).

Jetzt hast du einen Branch in Bitbucket, der in dein lokales System ausgecheckt ist, sodass du die separate Codezeile bearbeiten und pushen kannst.

Schritt 3: Änderungen an dem Branch vornehmen

Jetzt musst du ein paar Änderungen an deinem Repository vornehmen. Dabei sind deiner Kreativität keine Grenzen gesetzt. Ändere die CSS-Datei. Füge mehr Dateien hinzu. Schreibe eine Weltraumoper. Oder beantworte einfach die Fragen.

  1. Öffne das Repository in Sourcetree und klicke auf die Schaltfläche Show in Finder (Im Finder anzeigen).
  2. Öffne die Datei mit dem Namen survey.html (oder einem anderen von dir gewählten Namen) mit einem Texteditor.

  3. Nimm nach Belieben große oder kleine Änderungen vor, speichere die Datei und schließe sie dann.

  4. Öffne die Ansicht in Sourcetree. Du siehst, dass dein Repository jetzt Uncommitted changes (Nicht committete Änderungen) hat.

  5. (Nur Git) Füge die Datei der Staging-Umgebung hinzu:

    1. Wähle die Zeile Uncommitted changes (Nicht committete Änderungen).

    2. Setze in der Liste Unstaged files (Dateien, die nicht in der Staging-Umgebung sind) ein Häkchen neben die Datei survey.html (und alle anderen Dateien mit nicht committeten Änderungen).

    3. Klicke im Dialogfeld Confirm Stage? (Phase bestätigen?) auf OK.

  6. Klicke auf die Schaltfläche Commit (Commit durchführen) oben, um die Datei zu committen.

  7. Gib in das vorgesehene Feld eine Commit-Nachricht ein, wie z. B. Beantwortete Fragen.

  8. Klicke auf die Schaltfläche Commit (Commit durchführen) unter dem Nachrichtenfeld. Wenn du wieder zu dieser Ansicht zurückkehrst, siehst du, dass die Datei committet, aber nicht in das Bitbucket-Repository verschoben wurde.

  9. Klicke in Sourcetree auf die Schaltfläche Push (Pushen), um deine committeten Änderungen zu pushen.

  10. Klicke im nun angezeigten Dialogfeld auf OK, um deinen Branch mit dem Commit in Bitbucket zu pushen.

  11. Klicke in Bitbucket auf die Seite Source (Quelle) deines Repositorys. Im Drop-down-Menü solltest du beide Branches sehen können. Alle weiteren Commits, die du auf meine-Updates anwendest, werden ebenfalls in diesem Branch angezeigt.

Eine Pull-Anfrage erstellen, um deine Änderungen zu mergen

Der nächste Schritt ist das Erstellen einer Pull-Anfrage, um deine Teamkollegen über deine Updates zu benachrichtigen und ihre Genehmigung einzuholen. Eine Pull-Anfrage dient nicht nur zum Reviewen von Code, sondern zeigt auch deine Änderungen im Vergleich zum ursprünglichen Repository (auch "Diff" genannt) an und bietet eine einfache Möglichkeit für das Mergen von Code, wenn du so weit bist.

Schritt 1: Die Pull-Anfrage erstellen

Zum Erstellen einer Pull-Anfrage brauchst du einen Branch. Gut, dass du schon einen hast.

  1. Klicke in deinem Repository in der allgemeinen Seitenleiste auf + . Klicke dann unter Get to work (Loslegen) auf Create a pull request (Eine Pull-Anfrage erstellen).
    In Bitbucket wird nun das Anfrageformular angezeigt.
  2. Fülle das Formular aus:
    1. Für Title (Titel) wurde schon automatisch deine letzte Commit-Nachricht eingetragen.

    2. Wenn du möchtest, kannst du unter Description eine Beschreibung hinzufügen.

    3. Füge im Feld Reviewers (Reviewer) dein Teammitglied breezycloud als Reviewer hinzu.

    Wenn du fertig bist, sieht das Formular ungefähr so aus:
  3. Klicke auf Create pull request (Pull-Anfrage erstellen).

Bitbucket öffnet die Pull-Anfrage und dein Reviewer erhält eine E-Mail-Benachrichtigung mit Details zu der Pull-Anfrage, die reviewt werden soll.

Schritt 2: Deine Pull-Anfrage mergen

Doch immer mit der Ruhe! Vielleicht hast du oben schon die Schaltfläche Merge (Merge durchführen) gesehen. Du musst jedoch erst auf die Genehmigung deiner Änderungen warten, bevor du darauf klickst. Deine Teamkollegen erhalten eine E-Mail-Benachrichtigung und können die Pull-Anfrage jetzt auch im Dashboard Your work (Deine Arbeit) unter Pull requests to review (Zu reviewende Pull-Anfragen) sehen.

Reviewer können in der Pull-Anfrage den Diff ansehen und Kommentare hinzufügen, falls sie etwas besprechen möchten, bevor sie auf die Schaltfläche Approve (Genehmigen) klicken.

Wenn jemand deine Pull-Anfrage genehmigt, wirst du per E-Mail darüber benachrichtigt. Sobald du die erforderlichen Genehmigungen erhalten hast (in diesem Fall nur eine!) kannst du einen Merge durchführen. Klicke in der Pull-Anfrage auf Merge (Merge durchführen). Und das war's! Wenn du den Merge deines Branch in den Haupt-Branch sehen möchtest, kannst du durch Klicken auf Commits den Commit-Baum anzeigen.