IntelliJ unterstützt sowohl Git-Stashes als auch einen eingebauten Shelve-Befehl. Diese scheinen in Zweck und Nutzen nahezu identisch zu sein. Was ist der Unterschied zwischen ihnen?
Aus der IntelliJ Dokumentation :
Bei der Git-Integration werden zusätzlich zum Ablegen und Aufheben der Sperre "Ablagern" bzw. "Ablagern" unterstützt. Diese Funktionen haben viele Gemeinsamkeiten, der einzige Unterschied besteht in der Art und Weise, wie Patches generiert und angewendet werden.
- Patches mit veralteten Änderungen werden von Git selbst generiert. Um sie später anwenden zu können, benötigen Sie keine IntelliJ IDEA.
- Patches mit versetzten Änderungen werden von IntelliJ IDEA generiert. Normalerweise werden sie auch über die IDE angewendet. Das Anwenden von hinterlegten Änderungen außerhalb von IntelliJ IDEA ist ebenfalls möglich, erfordert jedoch zusätzliche Schritte.
Sie sind ziemlich ähnlich, außer:
IMHO arbeitet Shelf etwas schneller, vor allem in großen Projekten, wenn viele Dateien geändert wurden.
Weitere Informationen finden Sie in der Dokumentation documentation .
Ein entscheidender Vorteil, den Intellijs Shelve gegenüber einfachem Gits Versteck hat, besteht darin, dass Sie mit Shelve Änderungen speichern können, die zu mehreren Repos gehören, in einer Änderungsliste. Bei Verwendung von Stash müssten Sie jedes Repo einzeln ein- oder auslagern. Dies ist sehr nützlich in einem großen Projekt mit mehreren Modulen (jedes mit einem eigenen Repo), bei dem eine bestimmte Feature-Funktion mehrere Module (und daher mehrere Repos) überschneiden kann.
Hier ist, was Documentation sagt
Das Einlagern von Änderungen ist sehr ähnlich wie bei Regalen. Der einzige Unterschied besteht darin, wie Patches generiert und angewendet werden. Stashes werden von Git generiert und können von IntelliJ IDEA oder außerhalb angewendet werden. Patches mit versetzten Änderungen werden von IntelliJ IDEA generiert und auch über die IDE angewendet. Das Einlagern umfasst auch alle nicht festgeschriebenen Änderungen. Wenn Sie jedoch Änderungen an einem Regal vornehmen, können Sie einige der lokalen Änderungen auswählen, anstatt sie alle aufzuheben.