„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Kennst du Git wirklich?

Kennst du Git wirklich?

Veröffentlicht am 07.11.2024
Durchsuche:623

Do you really know Git?

Bilder in diesem Blog stammen von „Pro Git“ von Scott Chacon, Ben Straub

In diesem Blog erfahren Sie jede Menge nette Fakten über einige der alltäglichen Funktionen in Git, die Sie beim Programmieren verwenden!

Es ist für Entwickler leicht, Tools blind zu verwenden und nicht zu wissen, wie sie unter der Haube funktionieren. Auch wenn diese Abstraktionen von Vorteil sind, kann das Wissen, wie die Dinge funktionieren, manchmal den Unterschied zwischen einem erfahrenen Programmierer und einem Amateurprogrammierer ausmachen.

Lassen Sie uns in ein paar coole Fakten eintauchen!


1 – Kurzstatus

Wenn Sie Git schon länger verwenden, sollten Sie über den Git-Status Bescheid wissen. Wussten Sie jedoch, dass es eine Option gibt, eine besser lesbare und minimale Statusausgabe zu erhalten?

Durch die Verwendung des kurzen Statusflags -s erhalten Sie ein kompakteres Format.

$ git status -s
 M README
MM Rakefile
A  lib/git.rb
M  lib/simplegit.rb
?? LICENSE.txt

Sie werden feststellen, dass es im linken Bereich der Ausgabe zwei Spalten gibt. Die linke Spalte stellt den Status des Staging-Bereichs dar, während die rechte Spalte den Status des Arbeitsbaums darstellt. Die chronologische Reihenfolge der Aktionen wird ebenfalls von links nach rechts dargestellt.

Lassen Sie uns die obige Ausgabe interpretieren:

  • " M" – geändert, aber nicht bereitgestellt
  • "MM" - bereitgestellt und dann erneut geändert. Daher ist für den nächsten Commit eine zusätzliche Stufe erforderlich.
  • "A " – eine neue Datei wurde erstellt und bereitgestellt
  • "M " - inszeniert
  • "??" – Eine neue Datei wurde erstellt, aber nicht bereitgestellt (nicht verfolgt)

2 – Überspringen des Bereitstellungsbereichs

Was ist, wenn Sie Ihre verfolgten Dateien bereitstellen und alles in einem Befehl festschreiben möchten?

Sie können dies tun, indem Sie git commit -a -m "message" verwenden.

Beachten Sie, dass nicht verfolgte Dateien (neu erstellte Dateien) mit diesem magischen Befehl leider nicht bereitgestellt werden.


3 – Sehen Sie sich Ihren Commit-Verlauf an

Verwenden Sie git log, um die in Ihrem Repository vorgenommenen Commits in umgekehrter chronologischer Reihenfolge aufzulisten (die neuesten Commits werden zuerst angezeigt).

Es gibt verschiedene Optionen, mit denen Sie die Ausgabe anpassen können. Gehen wir einige nützliche durch:

  • -{number} begrenzt die Anzahl der angezeigten Protokolleinträge (z. B. git log -2 zeigt die letzten beiden Einträge an)
  • --stat zeigt abgekürzte Statistiken wie die Anzahl der Dateien oder die Anzahl der Einfügungen/Löschungen für jedes Commit an
  • --pretty=oneline druckt jedes Commit in einer einzelnen Zeile
  • --graph fügt ein ASCII-Diagramm hinzu, das Ihren Zweig- und Zusammenführungsverlauf zeigt

4 – Dinge mit Git Restore rückgängig machen

Wenn Sie die Bereitstellung einer Datei aufheben möchten, verwenden Sie git reset HEAD . Wenn Sie die Änderung einer geänderten Datei rückgängig machen möchten, verwenden Sie git checkout -- {file}.

Jetzt gibt es eine einfachere Möglichkeit, beides zu tun! Git-Version 2.23.0 führte Git Restore ein, das eine 2-in-1-Funktion zum Deaktivieren und Ändern von Dateien bietet.

  • Git Restore {Datei} – Änderung einer geänderten Datei rückgängig machen
  • git restart --staged {file} – Bereitstellung einer bereitgestellten Datei aufheben

5 – Git Fetch vs. Git Pull

Höchstwahrscheinlich haben Sie git pull mindestens einmal als Programmierer verwendet. Darüber hinaus haben Sie höchstwahrscheinlich schon von git fetch gehört, hatten aber nie wirklich das Bedürfnis, es zu verwenden. Nun, lasst uns darüber reden, was es eigentlich macht und wie es sich von Git Pull unterscheidet.

Sie können sich fetch nur als den ersten Schritt dessen vorstellen, was innerhalb eines Pulls passiert.

In einem Pull laden wir alle Daten aus dem Remote-Repository herunter und übertragen sie auf das lokale Repository. Dies ist, was ein Abruf bewirkt.

Zu diesem Zeitpunkt verfügt Ihr lokales Repository über die Daten, hat sie jedoch noch nicht mit dem Arbeitsverzeichnis zusammengeführt, sodass Sie an den neuesten Änderungen arbeiten können. Der nächste Schritt innerhalb eines Pulls ist eine Zusammenführung mit Ihrem Zweig, sodass sich die neuesten Änderungen dann in Ihrem Arbeitsverzeichnis befinden.

Bei einem Pull werden also alle Daten auf einmal abgerufen und zusammengeführt, während bei einem Fetch nur der erste Schritt ausgeführt wird.


6 – Git-Aliase

Was wäre, wenn ich Ihnen sagen würde, dass es eine Möglichkeit gibt, Ihre Git-Befehle anpassbar zu machen? Über die git config können Sie das!

Sie können Aliase für häufig verwendete Befehle wie folgt festlegen:

$ git config --global alias.co checkout
$ git config --global alias.br branch
$ git config --global alias.ci commit
$ git config --global alias.st status

Anstatt git commit einzugeben, müssen Sie jetzt nur noch git ci eingeben.

Dies ist besonders nützlich für Befehle, die dabei helfen, eine bestimmte Aufgabe intuitiver zu gestalten.

$ git config --global alias.unstage 'reset HEAD --'
# the double dash serves as an option separator. 
# It tells Git to treat anything after it as a filename

Der obige Befehl macht die folgenden Befehle äquivalent:

  • git unstage fileA
  • git reset HEAD – fileA

Es ist auch üblich, einen letzten-Befehl hinzuzufügen, um Ihren letzten Commit anzuzeigen:

$ git config --global alias.last 'log -1 HEAD'

Das ist alles für diesen Blog! Ich hoffe, Sie haben für Ihr nächstes Projekt mit Git ein paar nette Tricks gelernt, die die Qualität Ihres Workflows verbessern. Danke fürs Lesen!

Freigabeerklärung Dieser Artikel wird unter: https://dev.to/jihoonj/do-you-really-know-git-456d?1 reproduziert. Wenn ein Verstoß vorliegt, wenden Sie sich bitte an [email protected], um ihn zu löschen.
Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3