GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Lernen Sie Git-Befehle mit praktischen Beispielen unter Linux – Teil 1

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


Linux
  1. Verwendung des Linux-Hexdump-Befehls mit praktischen Beispielen

  2. Head- und Tail-Befehle in Linux mit Beispielen erklärt

  3. Mehr als 10 Linux-VI-Befehle mit Beispielen

  4. JQ-Befehl in Linux mit Beispielen

  5. Linux-rsync-Befehl mit praktischen Beispielen

15 Linux-PS-Befehl mit Beispielen

Linux-Suchbefehl mit praktischen Beispielen

Nmap-Befehle mit Beispielen

RPM-Befehle in Linux mit Beispielen

SSH-Befehle in Linux mit Verwendungsbeispielen

Wait-Befehl in Linux mit praktischen Beispielen erklärt