Lernpfad:Einführung in Git/4: Unterschied zwischen den Versionen

Aus Informatik-Box
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
Zeile 30: Zeile 30:
== Konflikte beheben ==
== Konflikte beheben ==


Wenn eine Datei gleichzeitig von mehreren Entwicklern bearbeitet wurde, dann kann es zu einem Konflikt kommen. Normalerweise würden die Änderungen des einen Entwicklers die des anderen überspeichern. {{Git}} erkennt diesen Konfilkt aber und erlaubt es dem zweiten Programmierer, das Problem zu beheben.
Wenn eine Datei gleichzeitig von mehreren Entwicklern bearbeitet wurde, dann kann es zu einem ''Konflikt'' kommen. Normalerweise würden die Änderungen des einen Entwicklers die des anderen überspeichern. {{Git}} erkennt diesen Konflikt aber und erlaubt es dem zweiten Programmierer, das Problem zu beheben.


Wenn ein Konflikt in einer Datei aufgetreten ist wird in {{Fork}} ein Hinweis angezeigt.
Wenn ein Konflikt in einer Datei aufgetreten ist wird in {{GitHub Desktop}} ein Hinweis angezeigt.


[[Datei:Fork conflict 1.jpg|center|frame]]
[[Datei:GitHub_Desktop_conflictMsg.png|center|frame]]


Links wird angezeigt, dass es sowohl Änderungen auf dem zentralen Server gibt, als auch in der lokalen Kopie (Pfeile nach oben/unten). Um das Problem zu beheben klicke oben auf "Resolve".
Die Meldung weist auf den Konflikt hin und das zunächst ein ''fetch'' vom Server ausgeführt werden muss, um die aktuellen Änderungen herunterzuladen. Klicke dazu in der Meldung auf "Fetch".


Wähle eine Datei mit einem Konfilkt und dann "Merge in Fork".
Oben wird nun angezeigt, dass es sowohl Änderungen auf dem zentralen Server gibt, als auch in der lokalen Kopie (Pfeile und Zahlen nach oben/unten). Um das Problem zu beheben klicke oben auf "Pull origin", damit die geänderten Dateien in dein lokales Repository geladen werden.


[[Datei:Fork merge 1.jpg|center|frame]]
[[Datei:GitHub_Desktop_ResolveMsg.png|center|frame]]


Es wird nun ein zwei geteiltes Fenster angezeigt, in dem die beiden in konflikt stehenden Versionen der Dateien nebeneinander angezeigt werden. Du kannst jetzt für jede Zeile entscheiden, welche Version in der Datei behalten werden soll. Du kannst auch beide Versionen nacheinander einfügen oder im unteren Teil des Fensters das Resultat von Hand bearbeiten.
Es wird nun ein zwei geteiltes Fenster angezeigt, in dem die beiden in konflikt stehenden Versionen der Dateien nebeneinander angezeigt werden. Du kannst jetzt für jede Zeile entscheiden, welche Version in der Datei behalten werden soll. Du kannst auch beide Versionen nacheinander einfügen oder im unteren Teil des Fensters das Resultat von Hand bearbeiten.


[[Datei:Fork merge 2.jpg|center|frame]]
[[Datei:GitHub Desktop ResolvedMsg.png|center|frame]]


Klicke schließlich auf "Resolve" und dann "Commit". Der Konflikt wurde aufgelöst und die zusammengefügte Datei direkt committed.  
Klicke schließlich auf "Continue Merge". Der Konflikt wurde aufgelöst und die zusammengefügte Datei direkt committed.  


Hast du so alle Konflikte aufgehoben kannst du erneut versuchen deine Änderungen zu "pushen".
Hast du so alle Konflikte aufgehoben kannst du erneut versuchen deine Änderungen zu "pushen".

Version vom 29. August 2021, 13:21 Uhr

In dem Projekt liegt eine Datei team.txt. Öffne diese in einem Texteditor und trage dich mit deinem Gitea Nutzernamen, vollen Namen und deiner E-Mail-Adresse in diese Datei ein. Speichere die Datei dann ab und schließe sie.

Ngb,J. Neugebauer,ngb@helmholtz-bi.de

Die Änderung auf dem Server speichern

In GitHub Desktop wird dir nun angezeigt, dass es Änderungen in deinem Projekt gibt (links oben steht "Changes (1)"). Klickst du dort, werden dir alle Dateien angezeigt, in denen GitHub Desktop Änderungen festgestellt hat.

GitHub Desktop Stageing.png

Du befindest dich in der "Stageing Area". Hier markierst du Dateien für einen "Commit" (ein Commit kann mehrere Dateien (oder Teile von Dateien) enthalten, die gemeinsam eine funktionale Änderung am Programm darstellen). Die Datei team.txt sollte schon mit einem Haken markiert sein. Rechts werden dir die Löschungen (rot) und Einfügungen (grün) angezeigt. Unten links kannst du nun ein "Commit subject" und eine "Description" für die Änderungen in diesem Commit eingeben. Gib hier ein treffendes Subject ein, das deine Änderungen beschreibt. (Bei kleinen Änderungen reicht ein einzeiliges Subject. Größere Änderungen sollten in der Description genauer beschrieben werden.)

GitHub Desktop Commit.png

Nun kannst du deine erste Änderung committen ("Commit to main"). GitHub Desktop zeigt dir dann an, dass dein lokales Repository zwar keine lokalen Änderungen mehr enthält, aber es neue Änderungen gibt, die bisher nicht auf den zentralen Server ("origin") überspielt wurden.

GitHub Desktop Dirty.png

Führe nun einen "push" aus, indem du oben auf "Push origin" klickst. Wenn alles gut läuft, werden deine Änderungen auf den Server übertragen.

Icon Info.png

Wenn du keine Fehlermeldung bekommst, dann kannst du mit dem nächsten Schritt weiter machen. Ansonsten besteht ein Konflikt, weil schon jemand anderes Änderungen an derselben Datei gepushed hat. Wie du damit umgehst erfährst du unten.


Konflikte beheben

Wenn eine Datei gleichzeitig von mehreren Entwicklern bearbeitet wurde, dann kann es zu einem Konflikt kommen. Normalerweise würden die Änderungen des einen Entwicklers die des anderen überspeichern. Git erkennt diesen Konflikt aber und erlaubt es dem zweiten Programmierer, das Problem zu beheben.

Wenn ein Konflikt in einer Datei aufgetreten ist wird in GitHub Desktop ein Hinweis angezeigt.

GitHub Desktop conflictMsg.png

Die Meldung weist auf den Konflikt hin und das zunächst ein fetch vom Server ausgeführt werden muss, um die aktuellen Änderungen herunterzuladen. Klicke dazu in der Meldung auf "Fetch".

Oben wird nun angezeigt, dass es sowohl Änderungen auf dem zentralen Server gibt, als auch in der lokalen Kopie (Pfeile und Zahlen nach oben/unten). Um das Problem zu beheben klicke oben auf "Pull origin", damit die geänderten Dateien in dein lokales Repository geladen werden.

GitHub Desktop ResolveMsg.png

Es wird nun ein zwei geteiltes Fenster angezeigt, in dem die beiden in konflikt stehenden Versionen der Dateien nebeneinander angezeigt werden. Du kannst jetzt für jede Zeile entscheiden, welche Version in der Datei behalten werden soll. Du kannst auch beide Versionen nacheinander einfügen oder im unteren Teil des Fensters das Resultat von Hand bearbeiten.

GitHub Desktop ResolvedMsg.png

Klicke schließlich auf "Continue Merge". Der Konflikt wurde aufgelöst und die zusammengefügte Datei direkt committed.

Hast du so alle Konflikte aufgehoben kannst du erneut versuchen deine Änderungen zu "pushen".