Heim  >  Artikel  >  Web-Frontend  >  Kennst du Git wirklich?

Kennst du Git wirklich?

DDD
DDDOriginal
2024-09-25 06:29:31247Durchsuche

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!

Für Entwickler ist es leicht, Tools blind zu verwenden und nicht zu wissen, wie sie unter der Haube funktionieren. Obwohl diese Abstraktionen zum Besseren sind, kann das Wissen, wie die Dinge funktionieren, manchmal den Unterschied zwischen einem erfahrenen 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 sich im linken Bereich der Ausgabe zwei Spalten befinden. 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“ – modifiziert, aber nicht inszeniert
  • „MM“ – inszeniert und dann noch einmal modifiziert. 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 jeden 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! Mit der Git-Version 2.23.0 wurde Git Restore eingeführt, das eine 2-in-1-Funktion zum Deaktivieren und Ändern von Dateien bietet.

  • Git Restore {file} – macht die Änderung einer geänderten Datei rückgängig
  • Git Restore --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 das Abrufen 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

It's also common to add a last command to see your most recent commit:

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

That's all for this blog! I hope you learned a few neat tricks for your next project with Git that will improve the quality of your workflow. Thanks for reading!

Das obige ist der detaillierte Inhalt vonKennst du Git wirklich?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn