Git ist ein verteiltes Versionskontrollsystem. Es wird hauptsächlich von Softwareentwicklern für ihre Quellcodeverwaltung verwendet. Git ist kostenlose Open-Source-Software und wird von vielen großen Organisationen zur Verwaltung ihrer riesigen Codebasis verwendet.
In diesem Tutorial machen wir uns mit Git vertraut. Dies wird eine praktische Anleitung sein. Dieses Tutorial geht davon aus, dass Git auf Ihrem System installiert ist.
Git-Anfangskonfiguration des Benutzers
Zuerst müssen wir die Einstellungen für den Git-Benutzer konfigurieren. Wir können diese Einstellungen für alle auf dem aktuellen System vorhandenen Repositorys oder für ein bestimmtes Repository vornehmen. Lassen Sie uns dies anhand eines Beispiels verstehen:
Benutzeridentität
In Git können wir die Benutzeridentität angeben, indem wir seinen Namen und seine E-Mail-Adresse angeben. Diese Informationen werden während jeder Commit-Operation verwendet. Führen Sie den folgenden Befehl im Terminal aus, um die Identität zuzuweisen:
$ git config --global user.name "Linuxtechi User" $ git config --global user.email "[email protected]"
Editor
Diese Einstellung konfiguriert den Editor, der beim Bereitstellen der Commit-Nachricht verwendet wird:
$ git config --global core.editor vim
Komprimierung
Diese Einstellung konfiguriert die zu verwendende Komprimierungsstufe. Der gültige Bereich für die Komprimierung ist -1 bis 9. Der Wert -1 gibt die zlib-Komprimierung an und ist die Standardkomprimierungsstufe. Der Wert 0 bedeutet keine Komprimierung und 1 bis 9 sind verschiedene Geschwindigkeits-/Größenkompromisse, wobei 9 am langsamsten ist.
$ git config --global core.compression 2
Diff-Tool
Diese Einstellung konfiguriert das Diff-Viewer-Tool. Zum Beispiel konfiguriert der folgende Befehl vimdiff als Diff-Tool:
$ git config --global diff.tool vimdiff
In den obigen Befehlen haben wir –global verwendet Option überall, wodurch diese Konfiguration global wird. Dies bedeutet, dass dieselbe Konfiguration auf alle Repositories angewendet wird, die auf dem aktuellen System vorhanden sind. Um das Konfigurations-Repository spezifisch zu machen, entfernen Sie einfach die Option –global.
Listenkonfiguration
Um die Git-Konfiguration aufzulisten, führen Sie den folgenden Befehl im Terminal aus:
$ git config -l
Dieser Befehl erzeugt folgende Ausgabe:
core.repositoryformatversion=0 core.filemode=true core.bare=false core.logallrefupdates=true core.editor=vim core.compression=2 user.name=Linuxtechi User [email protected] diff.tool=vimdiff
Git-Repositorys
Repository ist ein Ort, an dem Quellcode gespeichert wird. Wir können entweder ein neues Repository erstellen oder ein vorhandenes Repository verwenden. Um ein neues leeres Repository zu erstellen, führen Sie den folgenden Befehl aus:
$ mkdir my-repo.git $ cd my-repo.git $ git init --bare Initialized empty Git repository in my-repo.git
Diese Methode ist nützlich, wenn Sie mit einem neuen Projekt beginnen. Eine andere Methode besteht darin, ein vorhandenes Repository zu verwenden. Ein solches Repository wird auf einem Remote-Server wie GitHub gehostet. Um das Remote-Repository herunterzuladen, verwenden Sie den Klonbefehl wie folgt:
$ git clone https://github.com/linuxtechiuser/my-repo.git
Im obigen Befehl ist das letzte Argument der Pfad des entfernten Repositorys.
Git-Workflow
In diesem Abschnitt besprechen wir den Git-Workflow.
Neue Änderungen einführen
Der erste Schritt besteht darin, neue Änderungen einzuführen. Dies kann das Hinzufügen einer neuen Datei oder das Aktualisieren vorhandener Dateien sein. Lassen Sie uns eine neue Datei erstellen und die vorhandene Datei ändern
$ touch AUTHORS # Create new file $ echo "New Contents" >> README # Update existing file
Repository-Status prüfen
Git ist ein Content-Tracking-System, das die beiden oben genannten Änderungen identifiziert. Lassen Sie uns den Repository-Status überprüfen:
$ git status -s M README ?? AUTHORS
In der obigen Ausgabe erscheint der Buchstabe M vor README, was darauf hinweist, dass die vorhandene Datei geändert wurde. Wohingegen ?? erscheint vor AUTHORS, was darauf hinweist, dass dies eine neue Datei ist und Git sich dessen nicht bewusst ist, daher wird eine solche Datei als nicht verfolgte Datei bezeichnet.
Datei zum Änderungssatz hinzufügen
Lassen Sie uns Git anweisen, diese neue Datei zu verfolgen. Wir können dies mit dem Befehl add erreichen. Dieser Vorgang beginnt mit der Nachverfolgung von Änderungen, die an dieser Datei vorgenommen wurden.
$ git add AUTHORS
Lassen Sie uns jetzt den Repository-Status überprüfen:
$ git status -s A AUTHORS M README
Die obige Ausgabe zeigt ein A vor AUTHORS, was darauf hinweist, dass diese Datei unter Git neu hinzugefügt wurde. Mit diesem Befehl können wir beliebig viele Dateien hinzufügen.
Datei aus Änderungssatz entfernen
Lassen Sie uns Git anweisen, diese neu hinzugefügte Datei zu untracken. Wir können dies mit dem Reset-Befehl erreichen. Dieser Vorgang entfernt die Datei aus dem Änderungssatz
$ git reset AUTHORS $ git status -s M README ?? AUTHORS
Die obige Ausgabe zeigt, dass die AUTHORS-Datei nicht von Git verfolgt wird.
Änderungen übernehmen
In Git bilden Dateien, die Teil eines Änderungssatzes sind, einen Commit. Jeder Commit erhält eine eindeutige ID. Lassen Sie uns zuerst einen Änderungssatz erstellen
$ git add AUTHORS $ git add README
Lassen Sie uns nun die Änderungen mit der Commit-Nachricht in das lokale Repository übertragen. Im folgenden Befehl zeigt das Argument -m die Commit-Nachricht an.
$ git commit -m "Updated README and added AUTHORS"
Wenn Sie den obigen Befehl ausführen, wird die folgende Ausgabe generiert:
[master 0b124eb] Updated README and added AUTHORS 2 files changed, 1 insertion(+) create mode 100644 AUTHORS
Änderungen prüfen
In diesem Abschnitt besprechen wir Befehle, mit denen wir Repository-Änderungen überprüfen können.
Commit-Protokoll anzeigen
Das Repository kann mehrere Commits von mehreren Autoren enthalten. Wir können den Befehl log verwenden, um alle verfügbaren Commits anzuzeigen:
$ git log
Wenn Sie den obigen Befehl ausführen, wird die folgende Ausgabe generiert:
commit 0b124eb6d0109d837f6f9396c9937406abd3f456 (HEAD -> master) Author: Linuxtechi User <[email protected]> Date: Fri Jul 27 21:06:55 2018 +0530 Updated README and added AUTHORS
Dies ist ein Commit, das wir zuvor erstellt hatten. Im obigen Befehl:
- Die hexadezimale ID stellt eine Commit-ID dar Der Abschnitt
- Autor des Commit zeigt Details darüber, wer diese Änderungen vorgenommen hat
- Datumsabschnitt zeigt Datum und Zeitstempel des Commit
Kurzes Commit-Protokoll anzeigen
Der obige Befehl zeigt detaillierte Informationen zu jedem Commit an. Um eine kurze Beschreibung zu jedem Commit anzuzeigen, verwenden Sie die Option –oneline wie folgt:
$ git log --oneline
Wenn Sie den obigen Befehl ausführen, wird die folgende Ausgabe generiert:
0b124eb (HEAD -> master) Updated README and added AUTHORS
Commit anzeigen
Jedem Änderungssatz ist eine Commit-ID zugeordnet. Wir können diese ID mit dem Befehl show verwenden, um Commit-Inhalte anzuzeigen.
$ git show 0b124eb6d0109d837f6f9396c9937406abd3f456
Wenn Sie den obigen Befehl ausführen, wird die folgende Ausgabe generiert:
commit 0b124eb6d0109d837f6f9396c9937406abd3f456 (HEAD -> master) Author: Linuxtechi User <[email protected]> Date: Fri Jul 27 21:06:55 2018 +0530 Updated README and added AUTHORS diff --git a/AUTHORS b/AUTHORS new file mode 100644 index 0000000..e69de29 diff --git a/README b/README index 980a0d5..5680123 100644 --- a/README +++ b/README @@ -1 +1,2 @@ Hello World! +New Contents
Unterschied anzeigen
Mit dem Diff-Befehl können wir Änderungen überprüfen, bevor wir einen Änderungssatz erstellen. Der Diff-Befehl zeigt die Unterschiede zwischen Repository und lokalem Arbeitsbereich. Lassen Sie uns die README-Datei ändern und die Unterschiede anzeigen
$ echo "Generating diff" >> README $ git diff diff --git a/README b/README index 5680123..3158230 100644 --- a/README +++ b/README @@ -1,2 +1,3 @@ Hello World! New Contents +Generating diff
Im obigen Befehl:
- + Zeichen zeigt Änderungen an, die der Datei hinzugefügt wurden
- – Zeichen zeigt Änderungen an, die aus der Datei entfernt wurden
Mit Remote-Repositories arbeiten
Bisher haben wir nur mit dem lokalen Repository gearbeitet. Andere Entwickler können von uns vorgenommene Änderungen nicht verwenden, da sie lokal sind. Daher ist eine Code-Zusammenarbeit nicht möglich. Dieser Abschnitt beschreibt Befehle, die es uns ermöglichen, mit entfernten Repositories zu interagieren
Änderungen im Remote-Repository veröffentlichen
Wir können lokale Änderungen im Remote-Repository veröffentlichen, damit andere Entwickler sie verwenden können. Vor dem Veröffentlichen von Änderungen müssen wir ein Änderungsset und ein lokales Commit erstellen. Wir können Änderungen mit dem Push-Befehl wie folgt veröffentlichen:
$ git push
Dieser Befehl kopiert Änderungen vom lokalen Arbeitsbereich in das Remote-Repository. In Git wird dieser Vorgang als Push-Vorgang bezeichnet.
Arbeitsbereich mit Remote-Repository synchronisieren
Viele Entwickler können ihre Arbeitsbereichsänderungen im Remote-Repository veröffentlichen. Git ermöglicht es uns, diese Änderungen herunterzuladen und den Arbeitsbereich mit dem Repository zu synchronisieren. Wir können dies mit dem Pull-Befehl erreichen:
$ git pull
In Git wird dieser Vorgang als Pull-Vorgang bezeichnet.
Verschiedene Git-Befehle
Dieser Abschnitt behandelt verschiedene Git-Befehle, die für die Ausführung alltäglicher Aufgaben nützlich sind:
Letzten Commit ändern
Git ermöglicht es uns, den letzten Commit zu ändern. Wir können diese Methode verwenden, um die Erstellung eines neuen Commits zu vermeiden. Es wird hauptsächlich verwendet, um die vorherige Commit-Nachricht zu ändern. Um den letzten Commit zu ändern, verwenden Sie –amend Option wie folgt:
$ echo "Yet another new change" >> README $ git add README $ git commit --amend -m "This is amended commit
Lassen Sie uns nun das Commit-Log überprüfen:
$ git log commit 8bf67aec1d1de87f03ab6aae93940b17826fde1c (HEAD -> master) Author: Linuxtechi User <[email protected]> Date: Fri Jul 27 21:54:55 2018 +0530 This is amended commit
Wenn Sie die obige Ausgabe genau beobachten, können wir eine neue Commit-Nachricht, ihre ID und einen neuen Zeitstempel sehen.
Unverfolgte Dateien entfernen
Nicht getrackte Dateien sind solche, die Git nicht bekannt sind. Wir können alle nicht verfolgten Dateien mit dem Befehl clean entfernen.
Lassen Sie uns ein paar ungetrackte Dateien erstellen:
$ touch delete-me-1 delete-me-2 delete-me-3
Um alle oben genannten nicht verfolgten Dateien zu entfernen, verwenden Sie den Befehl clean mit -f Option wie folgt:
$ git clean -f Removing delete-me-1 Removing delete-me-2 Removing delete-me-3
Bitte beachten Sie, dass dieser Befehl Dateien dauerhaft entfernt, verwenden Sie ihn daher mit Vorsicht.
Commits eines bestimmten Autors anzeigen
Wenn wir den Befehl log verwenden, werden die Commits aller Autoren angezeigt. Um Commits eines bestimmten Autors anzuzeigen, verwenden Sie das Flag „Autor“ wie folgt:
$ git log --author=Linuxtechi
Wenn Sie den obigen Befehl ausführen, werden alle Commits von Linuxtechi-Autoren wie folgt aufgelistet:
commit 8bf67aec1d1de87f03ab6aae93940b17826fde1c (HEAD -> master) Author: Linuxtechi User <[email protected]> Date: Fri Jul 27 21:54:55 2018 +0530 This is amended commit
Verlauf jeder Datei Zeile für Zeile anzeigen
Um den Verlauf Zeile für Zeile anzuzeigen, können wir den Befehl „blank“ verwenden.
$ git blame README
Wenn Sie den obigen Befehl ausführen, wird die folgende Ausgabe generiert:
76294131 (Linuxtechi User 2018-07-27 21:12:11 -0700 1) Hello World! 8bf67aec (Linuxtechi User 2018-07-27 21:54:55 +0530 2) New changes 8bf67aec (Linuxtechi User 2018-07-27 21:54:55 +0530 3) Yet another changes
Im obigen Befehl:
- Die erste Spalte gibt die Commit-ID an
- Zweite Spalte gibt Autor an
- Dritte Spalte gibt Zeitstempel an
- Die letzte Spalte gibt die Zeilennummer und den Dateiinhalt an
Diff vom Staging-Bereich anzeigen
Wenn Sie einen Änderungssatz mit dem Befehl add erstellen, wird die Datei logisch in den Staging-Bereich verschoben. Sehen wir uns das an diesem Beispiel an:
$ echo "Let us demonstrate staging area" >> README $ git add README $ git diff
Der obige Befehl zeigt keinen Unterschied, da die Datei in den Staging-Bereich verschoben wird. Lassen Sie uns die –staged-Operation verwenden, um Unterschiede anzuzeigen:
$ git diff --staged diff --git a/README b/README index 74729a2..8bc5ffd 100644 --- a/README +++ b/README @@ -1,3 +1,4 @@ Hello World! New changes Yet another changes +Let us demonstrate staging area
Schlussfolgerung
In diesem Tutorial haben wir grundlegende Operationen von Git mit einfachen Beispielen besprochen. Dieses Tutorial ist ein guter Ausgangspunkt für Git-Neulinge.
Lesen Sie mehr : Lernen Sie den Git-Befehl mit praktischen Beispielen unter Linux kennen – Teil 2