Erforderliche Eingaben:
- Lesen Sie meinen Artikel über Git , folgen Sie ihm und verstehen Sie ihn . Dadurch wird sichergestellt, dass alles eingerichtet und betriebsbereit ist.
- Installieren Sie IntelliJ IDEA.
- Planen Sie eine Stunde persönliche Zeit ein, um die vollständige Meisterschaft zu erlangen.
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 zu forken und Ihre eigene Kopie zu klonen.
- Klonen Sie mein Repository und erledigen Sie alles lokal, ohne die Möglichkeit zu haben, das Ganze auf den Server zu übertragen. Schließlich ist das mein Repository :)
-
Kopieren Sie die Projektadresse:
-
Öffnen Sie IntelliJ IDEA und wählen Sie „Von Versionskontrolle abrufen“:
-
Kopieren Sie die Projektadresse und fügen Sie sie ein:
-
Sie werden aufgefordert, ein IntelliJ IDEA-Projekt zu erstellen. Angebot annehmen:
-
Da es kein Build-System gibt und das den Rahmen dieses Artikels sprengen würde, wählen wir Projekt aus vorhandenen Quellen erstellen :
-
Als nächstes sehen Sie diesen schönen Bildschirm: Nachdem wir nun das Klonen herausgefunden haben, können Sie sich umschauen.
Erster Blick auf IntelliJ IDEA als Git-Benutzeroberfläche
Schauen Sie sich das geklonte Projekt genauer an: Sie können bereits viele Informationen über das Versionskontrollsystem erhalten. Zuerst haben wir den Versionskontrollbereich in der unteren linken Ecke. Hier finden Sie alle lokalen Änderungen und erhalten eine Liste der Commits (analog zu „git log“). Kommen wir zur Diskussion von Log . Es gibt eine gewisse Visualisierung, die uns hilft, genau zu verstehen, wie die Entwicklung verlaufen ist. Sie können beispielsweise sehen, dass ein neuer Zweig mit einem hinzugefügten Header zum TXT- Commit 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 seine Änderungen und Metadaten.Darüber hinaus können Sie die tatsächlichen Änderungen sehen. Wir sehen auch, dass dort ein Konflikt gelöst wurde. IDEA stellt dies auch sehr gut dar. Wenn Sie auf die Datei doppelklicken, die bei diesem Commit geändert wurde, sehen wir, wie der Konflikt gelöst wurde: Wir stellen fest, dass wir links und rechts die beiden Versionen derselben Datei haben, die zu einer zusammengeführt werden mussten. Und in der Mitte haben wir das endgültige zusammengeführte Ergebnis. Wenn ein Projekt viele Zweige, Commits und Benutzer hat, müssen Sie separat nach Zweig, Benutzer und Datum suchen: Das Letzte, was ich erklären möchte, bevor wir beginnen, ist, wie man versteht, in welchem Zweig wir uns befinden. Ich gebe es Ihnen Eine Minute, um es herauszufinden ... Hast du es gefunden? Aufgeben? :D In der unteren rechten Ecke gibt es eine Schaltfläche mit der Bezeichnung Git:master. Was auch immer auf „Git:“ folgt, ist der aktuelle Zweig. Wenn Sie auf die Schaltfläche klicken, können Sie viele nützliche Dinge tun: zu einem anderen Zweig wechseln, einen neuen erstellen, einen vorhandenen umbenennen und so weiter.Arbeiten mit einem Repository
Nützliche Hotkeys
Für die zukünftige Arbeit müssen Sie sich einige sehr nützliche Hotkeys merken:- STRG+T – Holen Sie sich die neuesten Änderungen aus dem Remote-Repository (git pull).
- STRG+K – Commit erstellen / alle aktuellen Änderungen anzeigen. Dazu gehören sowohl nicht verfolgte als auch geänderte Dateien (siehe meinen Artikel über Git, der dies erklärt) (Git Commit).
- STRG+UMSCHALT+K – Dies ist der Befehl zum Übertragen von Änderungen an das Remote-Repository. Alle Commits, die lokal erstellt wurden und sich noch nicht im Remote-Repository befinden, werden gepusht (git push).
- ALT+STRG+Z – Rollback von Änderungen in einer bestimmten Datei auf den Status des letzten im lokalen Repository erstellten Commits. Wenn Sie in der oberen linken Ecke das gesamte Projekt auswählen, können Sie Änderungen in allen Dateien rückgängig machen.
Was wollen wir?
Um unsere Arbeit zu erledigen, müssen wir ein grundlegendes Szenario beherrschen, das überall verwendet wird. Das Ziel besteht darin, neue Funktionen in einem separaten Zweig zu implementieren und sie dann in ein Remote-Repository zu übertragen (dann müssen Sie auch eine Pull-Anfrage an den Hauptzweig erstellen, aber das würde den Rahmen dieses Artikels sprengen). Was ist dazu erforderlich?-
Rufen Sie alle aktuellen Änderungen im Hauptzweig ab (z. B. „master“).
-
Erstellen Sie von diesem Hauptzweig aus einen separaten Zweig für Ihre Arbeit.
-
Implementieren Sie die neue Funktionalität.
-
Gehen Sie zum Hauptzweig und prüfen Sie, ob während unserer Arbeit neue Änderungen vorgenommen wurden. Wenn nicht, dann ist alles in Ordnung. Wenn es jedoch Änderungen gab, gehen wir wie folgt vor: Gehen Sie zum Arbeitszweig und übertragen Sie die Änderungen vom Hauptzweig auf unseren. Wenn alles gut geht, dann großartig. Aber es ist durchaus möglich, dass es zu Konflikten kommt. Tatsächlich können sie einfach im Voraus gelöst werden, ohne Zeit im Remote-Repository zu verschwenden.
Sie fragen sich, warum Sie das tun sollten? Das ist ein gutes Benehmen und verhindert, dass Konflikte auftreten, nachdem Sie Ihren Zweig in das lokale Repository verschoben haben (es besteht natürlich die Möglichkeit, dass weiterhin Konflikte auftreten, aber die Wahrscheinlichkeit wird viel geringer ).
- Übertragen Sie Ihre Änderungen per Push an das Remote-Repository.
Änderungen vom Remote-Server abrufen?
Ich habe der README-Datei mit einem neuen Commit eine Beschreibung hinzugefügt und möchte diese Änderungen erhalten. Wenn Änderungen sowohl im lokalen Repository als auch im Remote-Repository vorgenommen wurden, können wir zwischen einer Zusammenführung und einem Rebase wählen. Wir entscheiden uns für die Fusion. Geben Sie STRG+T ein : Sie können nun sehen, wie sich die README-Datei geändert hat, dh die Änderungen aus dem Remote-Repository wurden übernommen, und in der unteren rechten Ecke sehen Sie alle Details zu den Änderungen, 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 aus .
Lassen Sie das Kontrollkästchen „Checkout-Filiale“ aktiviert und geben Sie den Namen der neuen Filiale ein. Für mich wird es readme-improver sein .
Git:master ändert sich dann zu Git:readme-improver .
Lassen Sie uns paralleles Arbeiten simulieren
Damit Konflikte auftreten, muss jemand sie erstellen :D Ich werde die README-Datei mit einem neuen Commit über den Browser bearbeiten und so paralleles Arbeiten simulieren. Es ist, als ob jemand Änderungen an derselben Datei vorgenommen hätte, während ich daran gearbeitet habe. Das Ergebnis wird ein Konflikt sein. Ich werde das Wort „völlig“ aus Zeile 10 entfernen.Implementieren Sie unsere Funktionalität
Unsere Aufgabe besteht darin, die README-Datei zu ändern und dem neuen Artikel eine Beschreibung hinzuzufügen. Das heißt, die Arbeit in Git läuft über IntelliJ IDEA. Fügen Sie Folgendes hinzu: Die Änderungen sind abgeschlossen. Jetzt können wir einen Commit erstellen. Drücken Sie STRG+K , was uns Folgendes bringt: Bevor wir einen Commit erstellen, müssen wir uns genau ansehen, was dieses Fenster bietet. Ich habe rote Pfeile hinzugefügt, um Ihnen zu zeigen, wo Sie suchen müssen. Hier gibt es viel Interessantes. Im Abschnitt „Commit-Nachricht“ schreiben wir Text, der mit dem Commit verknüpft ist. Um es dann zu erstellen, müssen wir auf „Commit“ klicken. Ich habe immer noch nicht herausgefunden, wie man das mit einem Hotkey macht. Wenn jemand herausfindet, wie es geht, schreibt mir bitte – das würde mich sehr freuen. Wir schreiben, dass sich die README geändert hat und erstellen den Commit. In der unteren linken Ecke wird eine Warnung mit dem Namen des Commits angezeigt:Überprüfen Sie, ob sich der Hauptzweig geändert hat
Wir haben unsere Aufgabe erledigt. Es klappt. Wir haben Tests geschrieben. Alles ist gut. Doch bevor wir auf den Server pushen, müssen wir noch prüfen, ob es zwischenzeitlich Änderungen im Hauptzweig gegeben hat. Wie konnte das passieren? Ganz einfach: Jemand erhält eine Aufgabe nach Ihnen, und dieser Jemand erledigt sie schneller, als Sie Ihre Aufgabe erledigen. Also müssen wir zur Hauptniederlassung gehen. Dazu müssen wir das tun, was in der unteren rechten Ecke im Screenshot unten gezeigt wird: Drücken Sie im Hauptzweig STRG+T , um die neuesten Änderungen vom Remote-Server abzurufen. Wenn Sie sich die Änderungen ansehen, können Sie leicht erkennen, was passiert ist:Das Wort „völlig“ wurde entfernt. Vielleicht hat jemand aus dem Marketing entschieden, dass es nicht so geschrieben werden sollte, und den Entwicklern die Aufgabe gegeben, es zu aktualisieren. Wir haben jetzt eine lokale Kopie der neuesten Version des Master-Zweigs. Gehen Sie zurück zu readme-improver . Jetzt müssen wir die Änderungen vom Hauptzweig auf unseren umbasieren. Wir machen das: Wenn Sie alles richtig gemacht und mir gefolgt sind, sollte das Ergebnis einen Konflikt in der README-Datei anzeigen: Auch hier müssen wir viele Informationen verstehen und aufsaugen. Hier wird eine Liste von Dateien (in unserem Fall eine Datei) angezeigt, die Konflikte aufweisen. Wir können aus 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 verwerfen möchten.
- Dies sind die Änderungen aus dem Readme-Improver.
- Das zusammengeführte Ergebnis. Im Moment ist es das, was vor den Änderungen existierte.
- Die Änderungen aus dem Hauptzweig.
GO TO FULL VERSION