2010-06-26 17 views

Répondre

2

Réponse courte: non, ce n'est pas comment la pile travaux. Vous pouvez cependant faire ce qui suit pour obtenir le résultat que vous recherchez.

En supposant que vous avez planqué quelques autres changements, puis a fait quelques autres modifications à votre index (changements originaux) et vous décidez que vous voulez garder ces changements tout en modifiant la planque:

#verify the state you are in 
git stash list 
git status 

git stash #push work in progress on the stash 
git stash list #check which stash you need 
git stash show [email protected]{1} #check the changes in the stash 

git stash pop [email protected]{1} #you're now ready to change your 'other' changeset 
# hack hack 
git stash #modified 'other' change set pushed on the stash 
git stash pop [email protected]{1} #your 'original changes' 

Je recommanderais ce flux de travail en essayant de modifier directement la cachette. Si vous êtes perdu dans les numéros de cachette, vous pouvez également utiliser git stash save 'some other changes'

À un certain point (probablement plus près que vous ne le pensez), il est plus facile de garder une trace des vraies branches.

1

Vous pouvez essayer, après éclater votre pile, pour marquer le fichier que vous ne voulez pas planquer comme « sans changement »:

git update-index --assume-unchanged -- /path/to/file 

, et puis essayer de cacher, vérifier si ledit fichier est inclus ou ne pas.

git update-index man page:

--assume-unchanged 
--no-assume-unchanged 

Lorsque ces drapeaux sont spécifiés, les noms des objets enregistrés pour les chemins ne sont pas mis à jour. Au lieu de cela, ces options définissent et désactivent le bit "supposé inchangé" pour les chemins. Lorsque le bit "supposer inchangé" est activé, git ne vérifie plus les modifications possibles dans les fichiers de l'arborescence de travail. Vous devez donc désactiver manuellement le bit pour indiquer à git lorsque vous modifiez le fichier de l'arborescence de travail. Ceci est parfois utile lorsque vous travaillez avec un gros projet sur un système de fichiers qui a un appel système très lent lstat(2) (par exemple, cifs).

Cette option peut également être utilisé comme un mécanisme de niveau de fichier grossier pour ne pas tenir compte des modifications non validées dans les fichiers chenillés (semblables à ce que .gitignore fait pour les fichiers non suivis)