Git Stash vs. Shelve in IntelliJ IDEA

John Wachira 30 Januar 2023
  1. Regaländerungen in Git
  2. Unshelve-Änderungen in Git
  3. Stash-Änderungen in Git
  4. Wenden Sie einen Stash in Git an
Git Stash vs. Shelve in IntelliJ IDEA

Dieser Artikel wird bei der Arbeit mit der IntelliJ IDEA zwischen git stash und git shelve unterscheiden. Die beiden greifen ein, wenn wir während der Arbeit zwischen mehreren Aufgaben wechseln und später darauf zurückkommen wollen.

Die IntelliJ IDEA ermöglicht es uns, an verschiedenen Funktionen zu arbeiten, ohne unseren Fortschritt zu verlieren. Wir können entweder verstauen oder ins Regal stellen.

Die beiden haben viel gemeinsam. Der große Unterschied besteht beim Generieren und Anwenden von Patches.

Wenn wir stashen, generiert Git den Patch und wir können die IntelliJ IDEA oder eine andere IDE verwenden, um den Patch anzuwenden. Auf der anderen Seite werden die Patches beim Zurückstellen generiert und innerhalb von IntelliJ IDEA angewendet.

Ein Stash speichert alle nicht festgeschriebenen Änderungen, während Shelving es uns ermöglicht, zu wählen, was zurückgestellt werden soll.

Regaländerungen in Git

Beim Zurückstellen von Änderungen speichern wir vorübergehend nicht festgeschriebene Änderungen, um sie später zu bearbeiten, wenn wir zu einer anderen Aufgabe wechseln müssen. Die IntelliJ IDEA ermöglicht es uns, einzelne Dateien oder alle Änderungen zurückzustellen.

Sie können den generierten Patch beliebig oft anwenden. Hier ist der typische Arbeitsablauf.

  1. In der IDE navigieren wir zum Commit-Tool. Dort können wir mit der rechten Maustaste auf die Änderungsliste oder Dateien klicken, die wir zurückstellen möchten, und Änderungen zurückstellen auswählen.

    git-Regal ändert sich

  1. Als nächstes überprüfen wir unsere Liste, geben unserem Regal einen Namen in der Commit Message und speichern das Regal, indem wir auf Shelve Changes klicken.

Eine Alternative ist die Verwendung der Option Silent. Die IDE verfügt über eine Shelve Silently-Option, die es uns ermöglicht, ohne Anzeige des Dialogs zurückzustellen.

Unshelve-Änderungen in Git

Gehen Sie folgendermaßen vor, um Änderungen aus dem Regal zu nehmen.

  1. Navigieren Sie in der IDE zur Registerkarte Shelf und wählen Sie die Dateien aus oder ändern Sie die Liste, die Sie aus dem Regal entfernen möchten.

  2. Tippen Sie im Menü auf Unshelve und wählen Sie die Liste aus, in der Sie die zurückgestellten Änderungen wiederherstellen möchten. Sie können auch eine neue Liste erstellen, wenn Sie sie nicht in einer vorhandenen Änderungsliste wiederherstellen möchten.

    Denken Sie daran, die neue Liste mit Aktiv zu markieren.

  3. Sie können alternativ das Symbol Unshelve Silently verwenden und die Änderungen in die aktive Änderungsliste verschieben.

Stash-Änderungen in Git

Ein Stash ist einfach eine Aufzeichnung der Differenz zwischen dem aktuellen Arbeitsverzeichnis und dem HEAD-Commit. Sie können einen Verzweigungspatch so oft wie nötig anwenden.

Denk daran, dass:

  1. Beim Anwenden eines Stashs kann es zu Konflikten kommen.
  2. Sie können keinen Stash auf eine Arbeitskopie anwenden, die nicht festgeschriebene Änderungen enthält.

Befolgen Sie diese Schritte, um Änderungen mit IntelliJ IDEA zu speichern.

  1. Navigieren Sie zu Git > Nicht festgeschriebene Änderungen > Stash-Änderungen.
  2. Wählen Sie das richtige Verzeichnis und wechseln Sie in den richtigen Zweig.
  3. Es ist immer gut, den Vorrat im Feld Nachricht kurz zu beschreiben.
  4. Klicken Sie auf Stash erstellen.

Wenden Sie einen Stash in Git an

Um einen Stash anzuwenden, folge diesen Schritten.

  • Wählen Sie das richtige Verzeichnis und wechseln Sie in den richtigen Zweig.
  • Wählen Sie den Stash aus, klicken Sie auf View, um zu sehen, welche Dateien sich ändern, nachdem der Patch angewendet wurde, und wählen Sie Pop Stash, um den Patch nach der Anwendung zu verwerfen.
  • Sie können einen neuen Zweig erstellen und den Patch anwenden, indem Sie den Namen des Zweigs in das Feld Als neuer Zweig eingeben.
John Wachira avatar John Wachira avatar

John is a Git and PowerShell geek. He uses his expertise in the version control system to help businesses manage their source code. According to him, Shell scripting is the number one choice for automating the management of systems.

LinkedIn

Verwandter Artikel - Git Stash