Je ne connais pas très bien l' shelve
aspect de Git. Si stash
est utilisé pour mettre de côté les travaux inachevés, quel est-il shelve
alors? Pour quoi l'utiliseriez-vous?
Par exemple sur Update Project (depuis le menu VCS)
on obtiendra (dans Idea 2019.2)
git
intellij-idea
jetbrains-ide
Edgar Martinez
la source
la source
shelve
n'est pas une commande git. Quel est le contexte de cette question, d'où viennent ces termes?shelve
existe dans d'autres outils mais ne fait pas partie de git.shelve
bzr, hg, etc. Faites-vous référence à un paquet d'interopérabilité git?Réponses:
git shelve
n'existe pas dans Git.Seulement
git stash
:Vous aviez un ancien projet git shelve de 2008 pour isoler les modifications dans une branche, mais cela ne serait pas très utile de nos jours.
Comme documenté dans la boîte de dialogue de mise en rayon d'Intellij IDEA , la fonction "mise en rayon et démêlage " n'est pas liée à un VCS (outil de contrôle de version) mais à l'IDE lui-même, pour stocker temporairement les modifications en attente que vous n'avez pas encore validées dans la liste des modifications.
Notez que depuis Git 2.13 (Q2 2017), vous pouvez désormais également stocker des fichiers individuels .
la source
git stash && <your actual command> && git stash pop
mais ça craint. La mise en rayon automatique et l'application sont plus proches de ce dont nous avons besoin.Lorsque vous utilisez les IDE JetBrains avec Git, "les actions de stashing et unstashing sont prises en charge en plus du stockage et de la décomposition. Ces fonctionnalités ont beaucoup en commun; la principale différence réside dans la façon dont les correctifs sont générés et appliqués. Shelve peut fonctionner avec des fichiers individuels ou des groupes. de fichiers, tandis que Stash ne peut fonctionner qu'avec un tas de fichiers modifiés à la fois. Voici quelques détails supplémentaires sur les différences entre eux. "
la source
git stash -p
ce qui l' emporte sur les deux. Malheureusement uniquement dans la ligne de commande.En plus des réponses précédentes, il y a une note importante pour moi:
shelve
est des produits de JetBrains fonction ( par exempleWebStorm
,PhpStorm
,PyCharm
, etc.). Il place les fichiers en attente dans le.idea/shelf
répertoire.stash
est l'une desgit
options. Il place les fichiers cachés dans le.git
répertoire.la source
Je préférerais suspendre les modifications au lieu de les cacher si je ne partage pas mes modifications ailleurs.
Le stashing est une fonctionnalité git et ne vous donne pas la possibilité de sélectionner des fichiers spécifiques ou des modifications à l'intérieur d'un fichier. Le rayonnage peut le faire, mais c'est une fonctionnalité spécifique à l'EDI, pas une fonctionnalité git:
Comme vous pouvez le voir, je peux choisir de spécifier les fichiers / lignes à inclure dans ma bibliothèque. Notez que je ne peux pas faire ça avec du stashing.
Attention, l'utilisation d'étagères dans l'EDI peut limiter la portabilité de vos correctifs car ces modifications ne sont pas stockées dans un dossier .git.
Quelques liens utiles:
la source