Ich arbeite oft an mehreren Funktionen gleichzeitig, was dazu führt, dass ich Änderungen zwischenspeichere und vergesse, während ich zu anderen Aufgaben wechsle. Ich habe versucht, Git-Hooks und Terminal-Aliase als Erinnerungen zu verwenden, aber sie waren entweder zu umständlich oder leicht zu ignorieren. Also musste ich eine bessere Lösung finden.
Dieser Artikel wurde ursprünglich vor über einem Jahr auf meinem Blog veröffentlicht, aber ich komme immer wieder darauf zurück. Teile es noch einmal mit der Welt :)
Git speichert Informationen als Liste von Snapshots. Ein Snapshot ist eine gespeicherte Version des Repositorys zu einem bestimmten Zeitpunkt. Jeder Commit stellt eine Momentaufnahme in der Git-Welt dar.
Der Arbeitsbaum ist ein einzelnes Auschecken einer Version des Projekts. Diese Dateien werden aus der komprimierten Datenbank im Git-Verzeichnis abgerufen und auf der Festplatte abgelegt, damit Sie sie verwenden oder ändern können. Dies ist der Ort, an dem Sie Ihre Arbeit erledigen, bevor Sie sie inszenieren und festlegen.
Git Worktrees sind eine Möglichkeit, mehrere Git-Arbeitsbäume gleichzeitig zu verwalten, ohne den Aufwand von Git-Stash. Sie ermöglichen es uns, an Zweigen als Unterverzeichnisse eines Repositorys zu arbeiten, wodurch die Mühe, Änderungen zu speichern, wenn eine dringende, nicht zusammenhängende Änderung erforderlich ist, völlig entfällt.
Das Modul worktree ermöglicht es Ihnen, mehrere Versionen des Projekts in separaten Unterverzeichnissen im selben Stammverzeichnis des Repositorys auszuchecken. Nehmen Sie zum Beispiel das folgende Diagramm zum traditionellen Ansatz:
In diesem Beispiel habe ich zwei gespeicherte Änderungen (die Hunderte von Codezeilen umfassen könnten) und drei Zweige: feature-1, feature-2 und fix -1. Wenn ich mit der Arbeit am Zweig fix-1 fertig bin und ihn vorantreibe, ist mein Gehirn zur nächsten Aufgabe gesprungen und hat die vorherigen Funktionen völlig vergessen, bis ich wieder an sie erinnert werde.
Stattdessen sieht es mit Arbeitsbäumen so aus:
Bei Arbeitsbäumen enthält die Verzeichnisstruktur jeden Arbeitsbaum (Zweig) in einem separaten Verzeichnis. Dadurch kann ich nahtlos von einem Zweig zu einem anderen wechseln, indem ich einfach das Verzeichnis ändere, in dem ich gerade arbeite. Mein üblicher Arbeitsablauf mit diesem Ansatz besteht aus Folgendem:
Wenn ich von einem Arbeitsbaum zu einem anderen wechseln möchte, muss ich nur entweder einen anderen Arbeitsbaum mit denselben Schritten erstellen, wenn ich ihn noch nicht erstellt habe, oder einfach ein anderes Verzeichnis mit VSCode öffnen und mit dem Hacken beginnen sofort.
Das Erstellen eines Arbeitsbaums ist so einfach wie das Ausführen von git worktree add Directory-Name Branch-Name für vorhandene Zweige oder git worktree add Directory-Name -b Branch-Name, um einen neuen Zweig zu erstellen.
Nachdem Sie mit der Arbeit an einem Zweig fertig sind, können Sie den Arbeitsbaum sicher entfernen, um eine Verschmutzung Ihrer Verzeichnisstruktur zu verhindern. Führen Sie einfach „git worktree Remove Directory-Name“ aus. Dadurch werden die zugrunde liegenden Zweige nicht gelöscht, sodass Sie sie später sicher noch einmal überprüfen können.
Arbeitsbäume sind Auscheckvorgänge von Repository-Zweigen, daher werden nicht verfolgte Dateien nicht kopiert. Dateien wie .env werden nicht kopiert. Stellen Sie daher sicher, dass Sie sie kopieren, nachdem Sie einen Arbeitsbaum erstellt haben, und installieren Sie ggf. Abhängigkeiten.
Beachten Sie außerdem, dass die für die Arbeitsbäume erstellten Verzeichnisse in Git-Statusprotokollen angezeigt werden, wenn sie im Stammverzeichnis des Repositorys ausgeführt werden. Diese Fallstricke sind für mich jedoch nichts im Vergleich zum Vergessen stundenlanger Arbeit.
Vielen Dank fürs Lesen! Sie können mehr auf meinem Blog lesen und meine Arbeit auf GitHub Sponsors unterstützen!
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