CodeGym /Kurse /Frontend SELF DE /Arbeiten mit Git-Branches in IntelliJ IDEA

Arbeiten mit Git-Branches in IntelliJ IDEA

Frontend SELF DE
Level 20 , Lektion 3
Verfügbar

11.1 Branches in Git

Arbeiten mit Branches in Git — das ist einer der Schlüsselkonzepte des Version Control Managements, der es ermöglicht, parallel mehrere Entwicklungsstränge in einem Repository zu führen. Branching macht Git zu einem mächtigen Tool für Zusammenarbeit, Experimente und das Management verschiedener Projektversionen.

Branches in Git

Du kannst dir Branches in Git wie Ordner vorstellen, in die Git dein Projekt kopiert. Du hast den Hauptordner deines Projekts in deinem lokalen Repositorymaster, und Git kann Kopien dieses Ordners erstellen, damit du dort experimentieren kannst, ohne den Hauptcode, der gut funktioniert, zu beschädigen. Solche Ordnerkopien nennt man Branches.

Branches sind alternative Codeversionen. Angenommen, du möchtest etwas in einem großen Projekt ändern, ein Experiment durchführen, bei dem du dir nicht ganz sicher bist. Wie würdest du das ohne Git machen?

Man könnte das Projekt in einen neuen Ordner kopieren und versuchen, alles dort zu ändern. Wenn dir das Ergebnis gefällt, kannst du es in den Hauptordner kopieren. Wenn nicht, kannst du es vergessen oder sogar löschen.

Oder nehmen wir ein Beispiel aus dem echten Leben. Sagen wir, beim Schreiben eines Buches:

  1. Du hast ein Manuskript des Buches (Hauptbranch).
  2. Du willst das Ende ändern (erstellen eines neuen Branches).
  3. Du schreibst ein neues Ende in ein separates Dokument (Arbeiten im neuen Branch).
  4. Wenn das neue Ende besser ist, ersetzt du das alte im Manuskript (Branch Merge).
  5. Löschst das separate Dokument mit dem neuen Ende (Branch löschen).

11.2 Erstellen von Branches

Ein Branch in IntelliJ IDEA zu erstellen ist ganz einfach:

Erstellen von Branches

Gib den Namen des Branches ein:

Erstellen von Branches

IntelliJ IDEA zeigt dir sofort den Namen deines aktuellen Branches oben im Menü an:

Erstellen von Branches

Was war dort vorher?

Dort war der Name deines ersten und Hauptbranches — master.

Jetzt steht dort test, was bedeutet, dass Git (unter der Leitung von IntelliJ IDEA) nicht nur einen neuen Branch erstellt hat, sondern auch sofort zu ihm gewechselt ist.

Lass uns in der Datei main.html im aktuellen Branch (test) etwas Code hinzufügen und committen:

Erstellen von Branches

11.3 Wechseln zwischen Branches

Schritt 1. Wähle einen Branch aus.

Jetzt wechseln wir zu unserem alten Branch zurück. Klicke auf das obere Menü, und was sehen wir dort?

Wechseln zwischen Branches

Keine Panik — es ist alles ganz einfach:

Local — das ist die Liste der Branches in deinem lokalen Git-Repository. Es gibt zwei davon:

  • test
  • master

Remote — das ist dein Remote-Repository, das sich auf einem Server von GitHub befindet. Wir haben deine Änderungen dorthin gepusht, aber der neue Branch ist dort nicht vorhanden, was logisch ist. Das Remote-Repository trägt den Namen origin und dort gibt es nur den Branch master.

Recent — das ist einfach eine Liste der Namen der letzten Branches, mit denen du gearbeitet hast: diesen Punkt fügt IntelliJ IDEA zur Bequemlichkeit und Schnelligkeit hinzu.

Der Name origin/master rechts vom lokalen Repository-Namen ist der Name des Remote-Repositories, mit dem es jetzt synchronisiert ist und wohin die Änderungen gepusht werden.

Schritt 2. Lade den Code des Branches in den aktuellen Ordner.

Wechseln zwischen Branches

Schritt 3. Überprüfen.

Ich sehe den Branch „master“ und den alten Code:

Überprüfen

11.4 Branch Merging

Versuchen wir nun, den Code unserer zwei Branches zusammenzuführen.

Schritt 1. Zuerst fügen wir unserem Projekt eine weitere Datei hinzu — index.html und schreiben dort irgendeinen Code:

  • Datei index.html erstellen
  • Schreibe darin den Code <h1>Hello</h1>
  • Datei committen

So sehen meine zwei Dateien im Branch master aus:

Branch Merging

Schritt 2. Branch Merging.

Wir werden die Änderungen, die im Branch test gemacht wurden, in unseren aktuellen Branch (master) einfließen lassen.

Dazu benutzen wir ebenfalls das obere Menü und den Befehl „Merge ‘test’ into ‘master’“:

Branch Merging

Schritt 3. Ergebnis überprüfen.

Branch Merging

Überprüfen:

  • Oben wird immer noch der Branch master angezeigt
  • Wir haben 2 Dateien: index.html und main.html
  • Die Datei main.html enthält den Code, der im Branch test hinzugefügt wurde

11.5 Merge-Konflikte

Manchmal gibt es beim Mergen von Branches Konflikte.

Wenn du in verschiedenen Branches Änderungen an einer Datei vornimmst und versuchst, sie zu mergen, kann es zu einem Konflikt kommen.

Konflikt in Textdateien

Git — das ist ein sehr intelligentes System — erkennt Dateitypen. Wenn du Änderungen an verschiedenen Stellen einer Datei machst, die es als Textdatei betrachtet, wird es die Änderungen einfach von einer Datei in die andere an die richtige Stelle übertragen (so, wie es ein Mensch tun würde).

Konflikt in Binärdateien

Wenn du jedoch irgendwo ein Bild oder ein Dokument änderst, wird Git nicht versuchen, dessen Teile zu einem zusammenzufügen: es wird dir einfach vorschlagen, welche Version der Datei du im aktuellen Branch behalten möchtest.

Manuelle Konfliktlösung

Wenn du Änderungen an derselben Stelle einer Textdatei vornimmst, wird Git nicht in der Lage sein, die verschiedenen Versionen korrekt zu mergen und dir vorschlagen, es selbst zu tun:

Merge-Konflikte

So könnte es aussehen:

Merge-Konflikte

Was du hier siehst:

  • Links — der Inhalt der Datei main.html im Branch master
  • Rechts — der Inhalt der Datei main.html im Branch test
  • In der Mitte schlägt dir IntelliJ IDEA vor, die finale Version des Codes zu schreiben (du kannst auf die Tasten „>>“ und „<<“ klicken, um Änderungen aus einer Datei automatisch einzufügen)

Ich habe die Variante master angenommen und den Code manuell ergänzt. Hier ist, was ich bekommen habe:

Merge-Konflikte

11.6 Änderungsverlauf

Noch etwas Nützliches und Interessantes. Du kannst den Änderungsverlauf jeder Datei ansehen, indem du auf die Schaltfläche „Show History“ klickst. Es gibt zwei Stellen, wo er sich befinden kann. Finde sie.

So sieht der Änderungsverlauf bei mir für die Datei main.html aus:

Merge-Konflikte

Erklärungen:

  • Links siehst du den Änderungsverlauf der einzelnen Datei:
    • Je neuer die Änderung, desto höher ist sie, je älter – desto niedriger
    • Hier wird auch der Verlauf der Branch-Merges angezeigt
  • Rechts — die Änderungen, die im jeweiligen Commit vorgenommen wurden
1
Опрос
Dekorative Elemente,  20 уровень,  3 лекция
недоступен
Dekorative Elemente
Dekorative Elemente
Kommentare
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION