Notwendige einleitende Hinweise:
- Lesen, wiederholen und verstehen Sie den Artikel über Git . Dadurch wird sichergestellt, dass alles bereits eingerichtet und einsatzbereit ist.
- Installieren Sie Intellij IDEA.
- Nehmen Sie sich eine Stunde Zeit für die vollständige Aufnahme.
Klonen Sie das Projekt lokal
Hier gibt es zwei Möglichkeiten.- Wenn Sie bereits über ein Github-Konto verfügen und später etwas pushen möchten, ist es besser, das Projekt auf sich selbst zu übertragen und Ihre Kopie zu klonen. Wie man einen Fork erstellt – ich habe in diesem Artikel im Kapitel ein Beispiel für den Fork-Workflow beschrieben .
- Klonen Sie aus meinem Repository und erledigen Sie alles lokal, ohne die Möglichkeit zu haben, das Ganze auf den Server zu übertragen. Schließlich wird dies mein Repository sein))
-
Kopieren Sie die Projektadresse:
-
Öffnen Sie Intellij IDEA und wählen Sie „Aus Versionskontrolle abrufen“:
-
Kopieren Sie die Adresse und fügen Sie sie in das Projekt ein:
-
Sie werden aufgefordert, ein Intellij IDEA-Projekt zu erstellen. Wir nehmen das Angebot an:
-
Da es kein Build-System gibt und dies nicht Gegenstand des Artikels ist, wählen Sie „ Projekt aus vorhandenen Quellen erstellen“ aus :
-
Als nächstes folgt das folgende Ölgemälde: Wir haben das Klonen geklärt, jetzt können wir uns umschauen.
Schauen Sie sich zunächst Intellij IDEA als Git-Benutzeroberfläche an
Schauen Sie sich das geklonte Projekt noch einmal genau an: Schon dort können Sie viele Informationen über das Versionskontrollsystem erhalten. Das erste ist das Versionskontrollfeld in der unteren linken Ecke. Darin finden Sie alle lokalen Änderungen und erhalten eine Liste der Commits (analog zu Git Log). Fahren wir mit der Log- Vorlesung fort . Es gibt eine gewisse visuelle Komponente, die hilft, genau zu verstehen, wie der Entwicklungsprozess abgelaufen ist. Sie können beispielsweise sehen, dass ein neuer Zweig mit einem zu txt hinzugefügten Commit-Header erstellt wurde , der dann mit dem Hauptzweig zusammengeführt wurde. Wenn Sie auf einen Commit klicken, sehen Sie in der rechten Ecke alle Informationen zum Commit: alle Änderungen und seine Metadaten. Darüber hinaus können Sie sehen, welche Änderungen vorgenommen wurden. Außerdem wurde der Konflikt dort gelöst. IDEA zeigt dies auch perfekt. Wenn Sie auf die Datei doppelklicken, die bei diesem Commit geändert wurde, sehen wir, wie der Konflikt gelöst wurde: Es fällt auf, dass rechts und links zwei Versionen derselben Datei vorhanden waren, die zu einer zusammengeführt werden mussten. Und in der Mitte steht das Endergebnis. Wenn ein Projekt viele Zweige, Commits und Benutzer hat, die im Projekt arbeiten, müssen Sie separat nach Zweig (Zweig), Benutzer (Benutzer) und Datum (Datum) suchen: Und das Letzte, was ich vor dem Start erklären möchte, ist, wie man es versteht in welcher Branche wir tätig sind. Ich gebe Ihnen eine Minute zum Suchen ... haben Sie es gefunden? Gibst du auf? :D In der unteren rechten Ecke gibt es einen Button Git:master , wobei nach Git: angezeigt wird, in welchem Branch sich das Projekt gerade befindet. Wenn Sie auf die Schaltfläche klicken, können Sie viele nützliche Dinge tun: in einen anderen Zweig wechseln, einen neuen erstellen, einen vorhandenen umbenennen und so weiter.Arbeiten mit dem Repository
Nützliche Hotkeys
Um weiterarbeiten zu können, müssen Sie sich einige sehr nützliche Hotkeys merken:- Strg + T – Holen Sie sich die neuesten Änderungen aus einem Remote-Repository (Git Pull).
- Strg + K – Alle derzeit verfügbaren Änderungen festschreiben/anzeigen. Dazu gehören sowohl nicht verfolgte als auch geänderte Dateien (siehe meinen Artikel über Git, dies wird dort beschrieben) (Git Commit).
- Strg + Umschalt + K ist ein Befehl zum Übertragen von Änderungen an ein Remote-Repository. Alle Commits, die lokal erstellt wurden und noch nicht auf dem Remote-Server liegen, werden zum Push (Git Push) angeboten.
- Alt + Strg + Z – Änderungen in einer bestimmten Datei auf den Status des zuletzt erstellten Commits im lokalen Repository zurücksetzen. Wenn Sie das gesamte Projekt in der oberen linken Ecke auswählen, können Sie Änderungen an allen Dateien rückgängig machen.
Was wollen wir?
Um zu funktionieren, müssen wir das grundlegende Skript beherrschen, das überall verwendet wird. Die Aufgabe besteht darin, neue Funktionen in einem separaten Zweig zu implementieren und sie in ein Remote-Repository zu übertragen (dann müssen Sie einen weiteren Pull-Request für den Hauptzweig erstellen, dies würde jedoch den Rahmen unseres Artikels sprengen). Was muss ich tun?-
Rufen Sie alle aktuellen Änderungen im Hauptzweig ab (z. B. Master).
-
Erstellen Sie basierend auf dieser Hauptvorlage eine separate Vorlage für Ihre Arbeit.
-
Implementieren Sie neue Funktionen.
-
Gehen Sie zum Hauptzweig und prüfen Sie, ob während Ihrer Arbeit neue Änderungen vorgenommen wurden. Wenn nicht, ist alles in Ordnung, und wenn nicht, gehen wir wie folgt vor: Wir gehen zum Arbeitszweig und übertragen die Änderungen vom Hauptzweig auf unseren. Wenn alles gut gelaufen ist, dann großartig. Aber es kann durchaus zu Konflikten kommen. Und sie können im Voraus gelöst werden, ohne Zeit mit einem Remote-Repository zu verschwenden.
Es scheint, warum sollte man das tun? Dies ist eine Regel des guten Tons, die verhindert, dass Konflikte entstehen, nachdem Sie Ihren Zweig in das lokale Repository verschoben haben (es besteht natürlich die Möglichkeit, dass sie noch bestehen, aber sie wird viel geringer).
- Übertragen Sie Ihre Änderungen per Push an ein Remote-Repository.
Änderungen von einem Remote-Server erhalten?
Ich habe der README-Datei mit einem neuen Commit eine Beschreibung hinzugefügt und möchte diese Änderungen erhalten. Wenn Änderungen sowohl im lokalen als auch im Remote-Repository vorgenommen wurden, wird die Wahl zwischen Merge und Rebase angeboten. Wählen Sie eine Zusammenführung aus. Geben Sie Strg + T ein : Als Ergebnis können Sie sehen, wie sich die README geändert hat, d. h. Änderungen aus dem Remote-Repository wurden abgerufen, und in der unteren rechten Ecke können Sie alle Details zu den Änderungen sehen, die vom Server kamen.Erstellen Sie einen neuen Zweig basierend auf dem Master
Hier ist alles einfach.-
Gehen Sie in die untere rechte Ecke und klicken Sie auf Git:master , wählen Sie + Neuer Zweig .
Lassen Sie das Kontrollkästchen „Checkout-Filiale“ stehen und geben Sie den Namen der neuen Filiale ein. Für mich wäre es readme-improver .
Danach ändert sich Git:master zu Git:readme-improver .
Simulation paralleler Arbeit
Damit Konflikte auftreten, muss jemand sie erstellen :D Ich werde die README mit einem neuen Commit über den Browser bearbeiten und so paralleles Arbeiten simulieren. Es heißt, jemand habe während meiner Arbeit Änderungen an derselben Datei wie ich vorgenommen, was zu einem Konflikt führen würde. Ich werde das Wort „vollständig“ aus Zeile 10 entfernen.Implementieren Sie Ihre Funktionalität
Die Aufgabe besteht darin, die README-Datei zu ändern und dem neuen Artikel eine Beschreibung hinzuzufügen. Das heißt, die Arbeit im Git wird über Intellij IDEA erledigt. Fügen Sie Folgendes hinzu: Die Änderungen sind abgeschlossen, jetzt können Sie einen Commit erstellen. Drücken Sie den Hotkey Strg + K , wir erhalten: Bevor Sie einen Commit erstellen, müssen Sie sich genau ansehen, was in diesem Fenster angeboten wird. Ich habe speziell einen Pfeil hinzugefügt, um Ihnen zu zeigen, wo Sie suchen müssen. Da gibt es viele interessante Dinge. Im Abschnitt „Commit-Nachricht“ schreiben wir den Text des Commits. Damit dieser erstellt wird, müssen Sie auf die Schaltfläche „Commit“ klicken . Ich habe immer noch nicht herausgefunden, wie man das mit einem Hotkey macht. Wenn also jemand es findet, schreiben Sie mir, ich werde sehr glücklich sein. Wir schreiben, dass sich die README geändert hat und erstellen einen Commit. Als Ergebnis erscheint in der unteren linken Ecke eine Warnung mit dem Namen des Commits:Überprüfen Sie, ob sich der Hauptzweig geändert hat
Wir haben die Aufgabe erledigt, es funktioniert, wir haben die Tests geschrieben, alles ist in Ordnung. Bevor Sie jedoch auf den Server pushen, müssen Sie prüfen, ob in dieser Zeit Änderungen im Hauptzweig stattgefunden haben. Wie konnte das passieren? Es ist ganz einfach: Jemand hat nach Ihnen eine Aufgabe bekommen, und dieser Jemand hat sie schneller erledigt als Sie. Daher wechseln wir in den Hauptzweig. Dazu müssen Sie in der unteren rechten Ecke das tun, was in der folgenden Abbildung dargestellt ist: Drücken Sie im Hauptzweig Strg + T , um die neuesten Änderungen vom Remote-Server abzurufen. Wenn man sich ansieht, welche Änderungen vorgenommen wurden, kann man leicht erkennen, was passiert ist: Wie Sie sehen, wurde das Wort „vollständig“ entfernt. Vielleicht war es jemand aus dem Marketing, der entschieden hat, dass es so nicht geschrieben werden kann, und den Entwicklern die Aufgabe gegeben hat, es zu aktualisieren. Wir haben jetzt die neueste Version des Master-Zweigs lokal. Gehen wir zurück zum Readme-Improver . Jetzt müssen wir die Änderungen vom Hauptzweig auf unseren umbasieren. Wir tun es: Wenn Sie bei mir alles richtig befolgt haben, sollte das Ergebnis ein Konflikt in der README-Datei sein: Auch hier gibt es viele Informationen, die verstanden und aufgenommen werden müssen. Dies zeigt eine Liste (in unserem Fall ein Element) von Dateien, die Konflikte haben. Wir können drei Optionen wählen:- Akzeptieren Sie Ihre – akzeptieren Sie nur Änderungen aus dem Readme-Improver.
- Akzeptieren Sie ihre – akzeptieren Sie nur Änderungen vom Master.
- Zusammenführen – entscheiden Sie selbst, was Sie behalten und was Sie entfernen möchten.
- Dies sind Änderungen aus dem Readme-Improver.
- Ergebnis. Im Moment ist es dasselbe wie vor den Änderungen.
- Änderungen aus der Hauptniederlassung.
GO TO FULL VERSION