Übung: Zusammenführen von Bobs Verzweigung
Während Alice am CSS-Code für die Website arbeitet, weiß Bob an seinem Heimarbeitsplatz nichts über die Arbeit von Alice. Aber das muss er auch gar nicht, weil beide auf Verzweigungen arbeiten. Bob beschließt, eigene Änderungen vorzunehmen.
Erstellen einer Verzweigung für Bob
Kehren Sie zum Bob-Verzeichnis zurück, und führen Sie den folgenden Befehl aus, um einen Branch mit dem Namen
add-cat
zu erstellen. Verwenden Sie dazu die häufig genutzte Optioncheckout -b
, um die Verzweigung zu erstellen und über einen einzigen Befehl zu ihr zu wechseln:cd ../Bob git checkout -b add-cat
Laden Sie die ZIP-Datei herunter, die einige Ressourcen der Website enthält. Entzippen Sie dann die Ressourcendateien:
wget https://github.com/MicrosoftDocs/mslearn-branch-merge-git/raw/main/git-resources.zip unzip git-resources.zip
Verschieben Sie nun die Datei bobcat2-317x240.jpg in das Verzeichnis Assets von Bob. Löschen Sie die anderen Dateien. Sie laden die Dateien später herunter und verwenden sie erneut.
mv bobcat2-317x240.jpg Assets/bobcat2-317x240.jpg rm git-resources.zip rm bombay-cat-180x240.jpg
Öffnen Sie als Nächstes die Datei index.html, und ersetzen Sie die Zeile „Eventually we will put cat pictures here“ (Hier später Katzenbilder hochladen) durch Folgendes:
<img src="Assets/bobcat2-317x240.jpg" />
Speichern Sie die Datei, und schließen Sie den Editor.
Sie haben zwei Änderungen an der Verzweigung
add-cat
von Bob vorgenommen: Sie haben eine Datei hinzugefügt und eine andere geändert. Führen Siegit status
aus, um Ihre Änderungen zu überprüfen:git status
Führen Sie dann die folgenden Befehle aus, um die neue Datei im Verzeichnis Objekte dem Index hinzuzufügen und alle Änderungen zu comitten:
git add . git commit -a -m "Add picture of Bob's cat"
Bob führt nun die gleiche Aktion aus, die Alice zuvor bereits ausgeführt hat. Er wechselt zurück zum
main
-Branch und führt einen Pull aus, um festzustellen, ob sich etwas geändert hat:git checkout main git pull
Überprüfen Sie die Ausgabe. Dieses Mal deutet die Ausgabe darauf hin, dass tatsächlich Änderungen an der Verzweigung
main
im freigegebenen Repository vorgenommen wurden (als Ergebnis des Pushs von Alice). Außerdem wird aus dieser Ausgabe ersichtlich, dass die ausmain
gepullten Änderungen im gemeinsamen Repository mit der Verzweigungmain
in Bobs Repository zusammengeführt wurden:remote: Counting objects: 4, done. remote: Compressing objects: 100% (3/3), done. remote: Total 4 (delta 1), reused 0 (delta 0) Unpacking objects: 100% (4/4), done. From D:/Labs/Git/Bob/../Shared e81ae09..1d2bfea main -> origin/main Updating e81ae09..1d2bfea Fast-forward Assets/site.css | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)
Als Nächstes führt Bob seine Verzweigung mit der Verzweigung zusammen, sodass in seinem Repository sowohl seine
main
als auchmain
Alices Änderungen enthält. Dann pusht Bobmain
auf seinem Computer in die Verzweigungmain
im freigegebenen Repository:git merge add-cat --no-edit git push
Bob verwendete nicht das --ff-only
-Flag, da er wusste, dass sich main
geändert hat. Ein Merge nur über einen Vorlauf hätte zu einem Fehler geführt.
Synchronisieren der Repositorys
Zu diesem Zeitpunkt verfügt Bob im Gegensatz zu Alice über ein aktuelles Repository. Alice muss den Befehl git pull
im freigegebenen Repository ausführen, um sicherzustellen, dass sie über die neueste und beste Version der Website verfügt.
Führen Sie die folgenden Befehle aus, um das Repository von Alice mit dem freigegebenen Repository zu synchronisieren:
cd ../Alice
git pull
Nehmen Sie sich einen Moment Zeit, um zu überprüfen, ob die Repositorys von Alice und Bob synchronisiert sind. Jedes der Repositorys sollte im Verzeichnis Objekte eine JPG-Datei und ein in der index.html-Datei deklariertes <img>
-Element haben. Die Datei site.css im Ordner Assets der einzelnen Repositorys sollte eine Zeile enthalten, die einen CSS-Stil mit dem Namen cat (Katze) definiert. Dieser Stil wurde von Alice hinzugefügt, als sie ihre Änderungen vorgenommen hat.
Wenn Sie index.html in einem Browser öffnen, sehen Sie das folgende Bild:
In der nächsten Lektion erfahren Sie, wie Sie Mergekonflikte lösen können, die auftreten, wenn sich von zwei oder mehr Entwickler*innen vorgenommene Änderungen überschneiden.