2013-10-02 6 views
11

Dans ma branche actuelle j'ai plusieurs: stashesComment "mettre à jour" une cachette?

  1. Si je demande [email protected]{0}:

    $ git stash apply stash{0} 
    
  2. Modifier cette planque

  3. Je veux enregistrer les modifications à la planque actuelle [email protected]{0}

Je ne veux pas créer une 4ème Stash Je veux juste mettre à jour la première planque .

Quelqu'un peut-il nous dire comment faire? Je regarde la page de man ... peut-être que je néglige quelque chose.

+3

Le problème est clair, mais quel est le cas d'utilisation? Pourquoi n'utilisez-vous pas de succursales pour cela? –

+0

Quel index de cache voulez-vous modifier? – Bucket

+1

Les stashes ne sont pas validés. Si vous avez besoin de ce type de flexibilité, il peut être préférable d'utiliser un système de file d'attente de patchs. (Je ne suis pas sûr de ce qui est préféré pour Git, Quilt ou StGIT.) Ou peut-être juste des branches privées que vous rebassez. – millimoose

Répondre

6

Vous pouvez stocker votre arbre de travail, puis déposer l'ancien dont vous n'avez pas besoin.

git stash apply 
# Make changes 
git stash 
git stash drop [email protected]{1} 

Vous pouvez pop au lieu d'appliquer, ce qui baissera la planque en même temps:

git stash pop 
# make changes 
git stash 

Une autre alternative, si vous avez déjà été déjà faites les changements que vous voulez faire avant en réalisant que vous voulez fusionner les changements en haut de la cachette:

# make changes 
git add <all files> 
git stash pop # or apply 
git rm --cached <files that you want to merge> 
git stash --keep-index 
+0

Votre dernier exemple était exactement ce que je recherchais. Thanx – Nick

+0

+1 à 'git stash --keep-index' – logoff