Website-Suche

So verwenden Sie das Git-Versionskontrollsystem unter Linux [umfassende Anleitung]


Versionskontrolle (Revisionskontrolle oder Quellcodeverwaltung) ist eine Möglichkeit, Änderungen an einer Datei oder Dateisammlung im Laufe der Zeit aufzuzeichnen, sodass Sie bestimmte Versionen später abrufen können. Ein Versionskontrollsystem (oder kurz VCS) ist ein Tool, das Änderungen an Dateien in einem Dateisystem aufzeichnet.

Es gibt viele Versionskontrollsysteme, aber Git ist derzeit das beliebteste und am häufigsten verwendete, insbesondere für die Quellcodeverwaltung. Die Versionskontrolle kann tatsächlich für nahezu jede Art von Datei auf einem Computer verwendet werden, nicht nur für Quellcode.

Versionskontrollsysteme/-tools bieten mehrere Funktionen, die Einzelpersonen oder einer Gruppe von Personen Folgendes ermöglichen:

  • Versionen eines Projekts erstellen.
  • Verfolgen Sie Änderungen genau und lösen Sie Konflikte.
  • Änderungen in einer gemeinsamen Version zusammenführen.
  • Rollback und Rückgängigmachen von Änderungen an ausgewählten Dateien oder einem gesamten Projekt.
  • Greifen Sie auf historische Versionen eines Projekts zu, um Änderungen im Laufe der Zeit zu vergleichen.
  • Sehen Sie, wer zuletzt etwas geändert hat, das möglicherweise ein Problem verursacht.
  • Erstellen Sie ein sicheres Offsite-Backup eines Projekts.
  • Verwenden Sie mehrere Maschinen, um an einem einzigen Projekt zu arbeiten und vieles mehr.

Ein Projekt unter einem Versionskontrollsystem wie Git besteht hauptsächlich aus drei Abschnitten, nämlich:

  • ein Repository: eine Datenbank zum Aufzeichnen des Status oder von Änderungen an Ihren Projektdateien. Es enthält alle notwendigen Git-Metadaten und -Objekte für das neue Projekt. Beachten Sie, dass dies normalerweise kopiert wird, wenn Sie ein Repository von einem anderen Computer in einem Netzwerk oder einem Remote-Server klonen.
  • ein Arbeitsverzeichnis oder -bereich: speichert eine Kopie der Projektdateien, an denen Sie arbeiten können (Ergänzungen, Löschungen und andere Änderungsaktionen vornehmen).
  • ein Staging-Bereich: eine Datei (unter Git als Index bezeichnet) im Git-Verzeichnis, die Informationen über Änderungen speichert, die Sie im Repository festschreiben (den Status einer Datei oder eines Satzes von Dateien speichern) möchten.

Es gibt zwei Haupttypen von VCSs, wobei der Hauptunterschied in der Anzahl der Repositorys besteht:

  • Zentralisierte Versionskontrollsysteme (CVCSs): Hier erhält jedes Projektteammitglied sein eigenes lokales Arbeitsverzeichnis, Änderungen werden jedoch nur an ein einziges zentrales Repository übergeben.
  • Verteilte Versionskontrollsysteme (DVCSs): Dabei erhält jedes Projektteammitglied sein eigenes lokales Arbeitsverzeichnis und Git-Verzeichnis, in dem es Commits vornehmen kann. Nachdem eine Person lokal einen Commit durchführt, können andere Teammitglieder nicht auf die Änderungen zugreifen, bis sie diese in das zentrale Repository überträgt. Git ist ein Beispiel für ein DVCS.

Darüber hinaus kann ein Git-Repository nackt (Repository, das kein Arbeitsverzeichnis hat) oder nicht-nackt (eines mit einem funktionierenden Verzeichnis) sein Verzeichnis). Freigegebene (oder öffentliche oder zentrale) Repositories sollten immer leer sein – alle Github-Repositories sind leer.

Lernen Sie Versionskontrolle mit Git

Git ist ein kostenloses und quelloffenes, schnelles, leistungsstarkes, verteiltes, benutzerfreundliches und beliebtes Versionskontrollsystem, das bei großen Projekten sehr effizient ist und über ein bemerkenswertes Verzweigungs- und Zusammenführungssystem verfügt. Es ist so konzipiert, dass es Daten eher wie eine Reihe von Snapshots eines Mini-Dateisystems verarbeitet, das in einem Git-Verzeichnis gespeichert ist.

Der Arbeitsablauf unter Git ist sehr einfach: Sie nehmen Änderungen an Dateien in Ihrem Arbeitsverzeichnis vor und fügen dann selektiv nur die Dateien, die sich geändert haben, zum Staging-Bereich hinzu, um Teil Ihres nächsten Commits zu sein.

Sobald Sie bereit sind, führen Sie einen Commit durch, der die Dateien aus dem Staging-Bereich übernimmt und diesen Snapshot dauerhaft im Git-Verzeichnis speichert.

Um Git unter Linux zu installieren, verwenden Sie den entsprechenden Befehl für die Distribution Ihrer Wahl:

sudo apt install git   [On Debian/Ubuntu]
sudo yum install git   [On CentOS/RHEL]

Nach der Installation von Git wird empfohlen, dass Sie Git mitteilen, wer Sie sind, indem Sie Ihren vollständigen Namen und Ihre E-Mail-Adresse wie folgt angeben:

git config --global user.name “Aaron Kili”
git config --global user.email “[email ”

Um Ihre Git-Einstellungen zu überprüfen, verwenden Sie den folgenden Befehl.

git config --list 

Erstellt ein neues Git-Repository

Gemeinsam genutzte Repositories oder zentralisierte Workflows sind sehr verbreitet und das werden wir hier demonstrieren. Wir gehen beispielsweise davon aus, dass Sie damit beauftragt wurden, ein zentrales Remote-Repository für Systemadministratoren/Programmierer aus verschiedenen Abteilungen Ihrer Organisation einzurichten, um an einem Projekt namens bashscripts zu arbeiten, das unter /projects/scritpts/ auf dem Server.

Stellen Sie per SSH eine Verbindung zum Remote-Server her und erstellen Sie das erforderliche Verzeichnis, erstellen Sie eine Gruppe mit dem Namen sysadmins (fügen Sie alle Mitglieder des Projektteams zu dieser Gruppe hinzu, z. B. den Benutzer admin) und legen Sie die entsprechenden Berechtigungen fest dieses Verzeichnis.

mkdir-p /projects/scripts/
groupadd sysadmins
usermod -aG sysadmins admin
chown :sysadmins -R /projects/scripts/
chmod 770 -R /projects/scripts/

Initialisieren Sie dann ein leeres Projekt-Repository.

git init --bare /projects/scripts/bashscripts

Zu diesem Zeitpunkt haben Sie erfolgreich ein reines Git-Verzeichnis initialisiert, das als zentraler Speicher für das Projekt dient. Versuchen Sie, eine Auflistung des Verzeichnisses zu erstellen, um alle darin enthaltenen Dateien und Verzeichnisse anzuzeigen:

ls -la /projects/scripts/bashscripts/

Klonen Sie ein Git-Repository

Klonen Sie nun das entfernte freigegebene Git-Repository über SSH auf Ihren lokalen Computer (Sie können auch über HTTP/HTTPS klonen, wenn Sie einen Webserver installiert und entsprechend konfiguriert haben, wie es der Fall ist Dies ist bei den meisten öffentlichen Repositories auf Github der Fall), zum Beispiel:

git clone ssh://admin@remote_server_ip:/projects/scripts/bashscripts 

Um es in ein bestimmtes Verzeichnis (~/bin/bashscripts) zu klonen, verwenden Sie den folgenden Befehl.

git clone ssh://admin@remote_server_ip:/projects/scripts/bashscripts ~/bin/bashscripts

Sie haben jetzt eine lokale Instanz des Projekts in einem nicht-nackten Repository (mit einem Arbeitsverzeichnis), Sie können die anfängliche Struktur des Projekts erstellen (d. h. eine README.md hinzufügen) -Datei, Unterverzeichnisse für verschiedene Kategorien von Skripten, z. B. „recon“ zum Speichern von „reconnaissance“-Skripten, „sysadmin ro“ zum Speichern von „sysadmin“-Skripten usw.):

cd ~/bin/bashscripts/
ls -la

Überprüfen Sie eine Git-Statuszusammenfassung

Um den Status Ihres Arbeitsverzeichnisses anzuzeigen, verwenden Sie den Statusbefehl, der Ihnen alle von Ihnen vorgenommenen Änderungen anzeigt; welche Dateien werden von Git nicht verfolgt; die vorgenommenen Änderungen und so weiter.

git status 

Git-Phasenänderungen und Commit

Als Nächstes stellen Sie alle Änderungen mit dem Befehl add mit dem Schalter -A bereit und führen den ersten Commit durch. Das Flag -a weist den Befehl an, geänderte Dateien automatisch bereitzustellen, und -m wird verwendet, um eine Commit-Nachricht anzugeben:

git add -A
git commit -a -m "Initial Commit"

Veröffentlichen Sie lokale Commits im Remote-Git-Repository

Nachdem Sie als Projektteamleiter nun die Projektstruktur erstellt haben, können Sie die Änderungen wie gezeigt mit dem Push-Befehl im zentralen Repository veröffentlichen.

git push origin master

Im Moment sollte Ihr lokales Git-Repository mit dem zentralen Projekt-Repository (Origin) auf dem neuesten Stand sein. Sie können dies bestätigen, indem Sie den Statusbefehl erneut ausführen.

git status

Sie können Ihre Kollegen auch dazu auffordern, mit der Arbeit an dem Projekt zu beginnen, indem Sie das Repository auf ihre lokalen Computer klonen.

Erstellen Sie einen neuen Git-Zweig

Durch die Verzweigung können Sie an einer Funktion Ihres Projekts arbeiten oder Probleme schnell beheben, ohne die Codebasis (Master-Zweig) zu berühren. Um einen neuen Zweig zu erstellen und dann zu diesem zu wechseln, verwenden Sie die Befehle branch bzw. checkout.

git branch latest
git checkout latest

Alternativ können Sie einen neuen Zweig erstellen und in einem Schritt zu diesem wechseln, indem Sie den checkout-Befehl mit dem Flag -b verwenden.

git checkout -b latest

Sie können beispielsweise auch einen neuen Zweig basierend auf einem anderen Zweig erstellen.

git checkout -b latest master

Um zu überprüfen, in welchem Zweig Sie sich befinden, verwenden Sie den Branch-Befehl (ein Sternchen zeigt den aktiven Zweig an):

git branch

Nehmen Sie nach dem Erstellen und Wechseln zum neuen Zweig einige Änderungen darunter vor und führen Sie einige Commits durch.

vim sysadmin/topprocs.sh
git status
git commit add  sysadmin/topprocs.sh
git commit -a -m 'modified topprocs.sh'

Führen Sie Änderungen von einem Zweig zum anderen zusammen

Um die Änderungen im Rahmen des Zweigtests im Hauptzweig zusammenzuführen, wechseln Sie zum Hauptzweig und führen Sie die Zusammenführung durch.

git checkout master 
git merge test 

Wenn Sie einen bestimmten Zweig nicht mehr benötigen, können Sie ihn mit dem Schalter -d löschen.

git branch -d test

Laden Sie Änderungen vom Remote Central Repository herunter

Vorausgesetzt, Ihre Teammitglieder haben Änderungen an das zentrale Projekt-Repository übertragen, können Sie alle Änderungen mit dem Pull-Befehl auf Ihre lokale Instanz des Projekts herunterladen.

git pull origin
OR
git pull origin master	#if you have switched to another branch

Untersuchen Sie das Git-Repository und führen Sie Vergleiche durch

In diesem letzten Abschnitt werden wir einige nützliche Git-Funktionen behandeln, die alle Aktivitäten verfolgen, die in Ihrem Repository stattgefunden haben, und es Ihnen so ermöglichen, den Projektverlauf anzuzeigen.

Die erste Funktion ist das Git-Protokoll, das Commit-Protokolle anzeigt:

git log

Ein weiteres wichtiges Feature ist der show-Befehl, der verschiedene Arten von Objekten (wie Commits, Tags, Bäume usw.) anzeigt:

git show

Die dritte wichtige Funktion, die Sie kennen müssen, ist der Befehl diff, der zum Vergleichen oder Anzeigen von Unterschieden zwischen Zweigen, zum Anzeigen von Änderungen zwischen dem Arbeitsverzeichnis und dem Index, von Änderungen zwischen zwei Dateien auf der Festplatte und vielem mehr verwendet wird.

Um beispielsweise den Unterschied zwischen dem Master- und dem neuesten Zweig anzuzeigen, können Sie den folgenden Befehl ausführen.

git diff master latest

Lesen Sie auch: Die 10 besten Git-Alternativen zum Hosten von Open-Source-Projekten

Zusammenfassung

Git ermöglicht es einem Team von Personen, mit denselben Dateien zusammenzuarbeiten und gleichzeitig Änderungen an den Dateien im Laufe der Zeit aufzuzeichnen, damit sie bestimmte Versionen später abrufen können.

Auf diese Weise können Sie Git zum Verwalten von Quellcode, Konfigurationsdateien oder anderen auf einem Computer gespeicherten Dateien verwenden. Weitere Dokumentation finden Sie in der Git-Onlinedokumentation.