web-dev-qa-db-fra.com

Quelle est la différence entre IntelliJ's Shelve et Git stash?

IntelliJ prend en charge les caches git ainsi que sa propre commande intégrée. Celles-ci semblent avoir un but et une utilité presque identiques. Quelle est la différence entre eux?

67
Daniel Compton

Depuis IntelliJ documentation :

Dans l'intégration Git, en plus de la mise en plateau et de la suppression, les fonctions "stashing" et "unstashing" sont respectivement prises en charge. Ces fonctionnalités ont beaucoup en commun, la seule différence réside dans la manière dont les correctifs sont générés et appliqués.

  • Les patchs contenant des modifications cachées sont générés par Git lui-même. Pour les appliquer plus tard, vous n’avez pas besoin d’IntelliJ IDEA.
  • Les correctifs comportant des modifications en attente sont générés par IntelliJ IDEA. Normalement, ils sont également appliqués via l'EDI. L'application de modifications en dehors de IntelliJ IDEA est également possible mais nécessite des étapes supplémentaires.
48
Daniel Compton

Ils sont assez similaires sauf:

  • Vous ne pouvez pas utiliser shelve en dehors de l'IDE, car c'est la fonctionnalité d'Intellij.
  • Git Stash ne fonctionne qu'avec un répertoire de travail et un index entiers. Le rack d'IntelliJ peut travailler avec des fichiers individuels et des listes de modifications (une autre fonctionnalité d'IntelliJ). Comme vous pouvez le voir, par exemple, ici , il est parfois nécessaire.
  • Idea a un meilleur support intégré pour shelve. Travailler avec git stash est plus simple. En particulier, vous pouvez stocker/annuler vos modifications ou examiner les fichiers stockés à partir de la fenêtre de l’outil de contrôle de version.

Aussi, IMHO, shelve fonctionne un peu plus vite, en particulier dans un grand projet, quand beaucoup de fichiers ont été modifiés.

Voir la documentation pour plus d'informations.

23
id.bobr

Un avantage distinct de Shij d'Intellij par rapport à la réserve de Git est que, grâce à Shelve, vous pouvez enregistrer les modifications appartenant à plusieurs pensions dans une seule liste de modifications. En utilisant stash, vous auriez besoin de stash/unstash dans chaque dépôt individuellement. Ceci est très utile dans un grand projet avec plusieurs modules (chacun ayant son propre référentiel) où un travail de fonctionnalité particulier peut se chevaucher sur plusieurs modules (et donc plusieurs référentiels).

8
riyasvaliya

Voici ce que Documentation Dit

Cacher les changements est très similaire au rayonnage. La seule différence réside dans la manière dont les correctifs sont générés et appliqués. Les caches sont générés par Git et peuvent être appliqués à partir d’IntelliJ IDEA ou à l’extérieur. Les correctifs comportant des modifications stockées sont générés par IntelliJ IDEA et sont également appliqués via l'EDI. De plus, le stockage masqué implique toutes les modifications non validées, tandis que lorsque vous mettez des modifications dans une étagère, vous pouvez sélectionner certaines des modifications locales au lieu de toutes les stocker.

0
Astha