Commits in Git verwenden

Die Änderungen in Git sind nicht die gleichen wie in anderen Versionsverwaltungs- und Kontrollsystemen, da die Eigenschaft, nur das zu speichern, was sich wirklich geändert hat, dazu führt, dass die Größe der generierten Dateien zur Kontrolle reduziert und auch angegeben wird Höhere Beweglichkeit

Der Aspekt, der all dies steuert, ist der Index , der die Verantwortung hat zu wissen, wer, was und wann von allen vorgenommenen Änderungen ist. Deshalb wird nach dem Hinzufügen der verschiedenen Aspekte zu unserem Branchenindex das sogenannte Festschreiben durchgeführt.

Was ist ein Commit?
In Git wissen wir, dass zum Hinzufügen einer Änderung diese festgeschrieben werden muss , sobald sie dem Index des Repository hinzugefügt wurde. Was genau ist ein Commit ? Wir stellen diese Frage nicht immer, da die Art und Weise, wie Git damit umgeht, ziemlich klar ist, aber ein Commit ist die Art und Weise, in der Git den aktuellen Status des Index des Repository registriert und auf diese Weise jeweils im entsprechenden Objekt speichert commit wird von der vorherigen abgeleitet und somit kann die Struktur, die keine Änderungen erfährt, wiederverwendet werden.

Das Ressourcenmanagement, das dies so schnell macht, beruht auf der Tatsache, dass Vergleiche über SHA1 durchgeführt werden. Wenn also die Elemente im Index denselben Hash haben, werden sie nicht weiter in ihre Änderungen vertieft, da sie identisch sind und somit nur nimmt die Dateien, die sich wirklich geändert haben.

Die Art und Weise, wie Commits organisiert sind, ermöglicht es uns, hierarchische Strukturen zu erstellen, die die Gewissheit geben, den Ursprung aller registrierten Änderungen zu ermitteln. Wenn wir also die Best Practices von Git befolgen, gehen wir dank der eindeutigen Bezeichner niemals verloren Einige Funktionen haben ein Problem verursacht, das genau an der Stelle gefunden werden kann, an der es enthalten war.

Das einzigartige und unwiederholbare Commit

Wir haben kommentiert, wie die Commits einen Hash in SHA1 haben, mit dem sie identifiziert werden können. Es stellt sich heraus, dass dieser Hash sie auch eindeutig und unwiederholbar macht. Wenn wir also einen Commit haben und in einem anderen Repository denselben Hash gefunden haben, können wir wissen, dass er derselbe ist begehen

Aus diesem Grund wird das Commit auch als atomar betrachtet, dh als eine einzelne Einheit, die unabhängig den Status vieler Verzeichnisse oder Dateien speichert. Damit können wir das Commit als eine Einheit in unserem Repository bezeichnen und somit jedes einzelne als Element behandeln Das ist einzigartig, obwohl es mit dem vorherigen verwandt ist.

See also  Programm kann nicht gestartet werden, da MSVCR120.dll Windows 10, 8, 7 fehlt

Platzieren des Namens beim Festschreiben

Obwohl der SHA1- Hash als eindeutiger Bezeichner für das Commit dient , kann seine Struktur aus 40 alphanumerischen Zeichen ein Problem darstellen, wenn wir mit einem anderen Entwickler kommunizieren und erläutern möchten, um welches Commit es sich handelt.

Relative Namen
Um dieses Problem zu lösen, können wir relative und leichter zu merkende Namen für Commits festlegen . Diese ersetzen nicht den Hash, sondern dienen als eine Art Tag, mit dem wir sie auf menschlichere Weise identifizieren können.

Um über das letzte Festschreiben des Zweigs zu sprechen, können wir einfach auf HEAD verweisen, da dies immer auf das letzte und letzte Festschreiben verweist. Da dies jedoch nicht immer erforderlich ist, ist es ausreichend, dass wir die ersten Zeichen des Hashs verwenden , obwohl dies nicht der Fall ist Dies ist immer eindeutig. Wenn Sie also mehr Zeichen hinzufügen, erhalten Sie die entsprechende Einzigartigkeit.

Schauen wir uns dann den Befehl an, den wir verwenden müssen, um Letzteres zu erreichen:

 git log -1 --pretty = oneline identifiercommit 

In der folgenden Abbildung sehen wir nun, wie wir ein Commit in unserem Test-Repository identifizieren. Wir suchen zunächst nach dem SHA1 des HEAD und nennen es dann nach den ersten Zeichen.

commits-en-git.jpg

Git Log, unser Verbündeter Entdecker

Mit dem vorherigen Beispiel haben wir ein Git- Tool entdeckt, das sehr nützlich sein kann und der Befehl log ist. Dies ist sehr leistungsfähig, da es uns ermöglicht, die verschiedenen Commits schnell und präzise zu lokalisieren. Es können jedoch viele Parameter und Konfigurationen verwendet werden es ist zunächst schwierig, sich etwas einprägen zu können, aber um es zu benutzen, müssen wir nicht alle lernen, wir können nach und nach fortfahren, während wir uns an ihren Gebrauch gewöhnen.

Wenn Sie den Verlauf von Commits anzeigen möchten, gehen Sie wie folgt vor:

 git log nameBranch 

Damit erhalten wir detaillierte Informationen über die Geschichte unserer Branche und ihre Commits . Sehen wir uns an, wie es in unserer Konsole im Test-Repository aussieht:

See also  Was ist Ransomware (WannaCry ua) und wie schützt man sich?

commits-en-git2.jpg

Wir bemerken dann, wie die Commits vom jüngsten bis zum ältesten organisiert sind. Dies ermöglicht es uns, ein wenig die historische Linie der Veränderungen zu sehen, unter denen der ausgewählte Zweig leidet, um das historische Protokoll zu sehen.

Zeichnen Sie die Änderungen

Da das Arbeiten in der Konsole manchmal etwas schwierig ist, obwohl es sehr wichtig ist, bietet Git ein Tool an, mit dem wir den Verlauf von Commits grafisch überprüfen können. Gitk ist kein Unterbefehl von Git wie log, den wir bereits gesehen haben Es ist jedoch ein unabhängiger Befehl, der uns den Zugriff auf weitere Details der Branche und ihrer Geschichte ermöglicht.

Um es zu benutzen, müssen wir einfach den folgenden Befehl ausführen:

 gitk nameBranch 

Mal sehen, wie die Ausführung in der Konsole aussieht:

commits-en-git3.jpg

Obwohl es den Anschein hat, dass nichts passiert ist, erhalten wir in Kürze ein Fenster mit der gewünschten Grafik für den angegebenen Zweig, wie im folgenden Screenshot zu sehen ist:

commits-en-git4.jpg
Wir können feststellen, dass wir neben der Verbesserung der Visualisierung ein viel größeres Detail haben.

Refs und Symrefs

Refs und Symrefs entsprechen symbolischen Referenzen bzw. Referenzen , wobei die erste einem SHA1- Bezeichner eines Objekts im Rahmen von Objekten in unserem Repository entspricht, während die zweite indirekt einem Objekt entspricht, obwohl ihr Name auch ein ist Referenz.

Diese Struktur von Referenzen ist sehr wichtig zu wissen, da es uns ermöglicht, die Organisation unseres Verzeichnisses von Commits und Zweigen in Git zu verstehen, die im Verzeichnis .git / ref gespeichert sind .

Symbolische Referenz erstellen
Wenn wir explizit eine symbolische Referenz erstellen möchten, reicht es aus, den Befehl git symbolic-ref zu verwenden , und obwohl es möglich ist, Namen wie HEAD für diese Referenzen zu verwenden, ist dies nicht ratsam, da sie am Ende des Tages zu einer Verwirrung führen können, die Schaden anrichten kann unser Repository

Lassen Sie uns abschließend sehen, wie die Ausführung dieses Befehls aussieht, wenn wir ihn auf unser Test-Repository anwenden:

See also  Überprüfen Sie die Bitrate von Videos unter Windows, macOS oder Linux

commits-en-git5.jpg

Relative Namen in den Commits

Ein weiterer interessanter Aspekt der Festschreibungen ist, dass wir mit den relativen Namen arbeiten können. Dies macht das Auffinden von Festschreibungsbereichen sehr einfach. Wenn wir beispielsweise herausfinden möchten, was zwischen Überarbeitungen eines bestimmten Zeitraums vorhanden ist, können wir dies tun.

Um dies zu erreichen, müssen wir nur den Filialnamen plus das ^ Symbol und die Revisionsnummer verwenden. Zum Beispiel master ^, wobei wir uns auf die vorletzte Änderung beziehen, die im Zweigmaster vorgenommen wurde.

Repository-Verlauf
Auf diese Weise können wir uns in der Historie unseres Repository bewegen, was uns die Möglichkeit gibt, auf die Commits zuzugreifen, die es uns ermöglicht haben, die aktuelle zu haben, wenn wir dem Strukturmaster folgen. ^ 2 bringt uns zur zweiten Vater des Commits , das heißt, dem er parallel das Leben geschenkt hat, können wir auch auf den Vater des Vaters unseres gegenwärtigen Commits zugreifen, das heißt, den Großvater, um es irgendwie in die Genealogie einzubeziehen.

Ein Beispiel kann master ^ 2 ~ 3 sein , um auf historische Änderungen in unserem Repository zu verweisen. Wenn wir den Namen eines relativen Commits erhalten möchten, müssen wir einfach den folgenden Befehl verwenden:

 git rev-parse nombreRelativo 

Dies gibt den SHA1 des Commits zurück, zu dem wir gekommen sind. Sehen wir uns in der folgenden Abbildung an, wie wir den Namen des aktuellen Master-Commits und mit master ~ den Namen des ersten übergeordneten Elements desselben Commits abrufen können, mit dem wir begonnen haben:

commits-en-git6.jpg

Wir bemerkten dann, wie wir zwei verschiedene und gültige SHA1 in unserem Repository erhalten konnten, wobei nur relative Namen verwendet wurden .

Nachdem wir dieses Tutorial abgeschlossen haben, haben wir neue Konzepte eingeführt, was die Commits in Git darstellen . Dies gibt uns die Möglichkeit, die Strukturen unserer Repositories besser zu verstehen. Dadurch wird die Organisation logischer und wir können viel mehr Wirksam bei Änderungen in unserem Code. Die Art und Weise, wie Git mit den Unterschieden umgeht , macht es zu etwas Besonderem, weshalb es zu einem der Treiber führender Versionen der aktuellen Technologie geworden ist.

administrator

Leave a Reply

Your email address will not be published. Required fields are marked *