2010-01-08 3 views
11

"Cannot rewrite branch(es) with a dirty working directory".erreur git « Impossible de réécrire la branche (s) avec un répertoire de travail sale »

Je suis nouveau à Git - J'ai essayé googler une réponse en vain.

Que signifie cette erreur? Que dois-je/je peux faire?

+0

est mon premier et je repo quelque chose avait commis git ne faisant pas partie ... dû corriger. – jldupont

+0

J'ai le même problème et j'ai de l'expérience avec git. Si je fais 'git-filter -subdirectory-filter somedir - --all' je me retrouve avec tout mon repo traité mais si je fais' git filter-branch --tree-filter 'rm unfile' - - tout »il quitte après avoir traité la première branche avec l'erreur mentionnée ci-dessus. Pourquoi 'filter-branch' sauvegarde l'état de' --subdirectory-filter' mais s'arrête si '--tree-filter' change le répertoire? –

Répondre

19

Un répertoire de travail sale signifie que vous avez des modifications non validées dans votre branche. Vous pouvez les commettre ou les stocker. Pour cacher simplement utiliser:

git stash 

Et utiliser pour apporter vos modifications

git stash apply 
+0

qui a aidé ... merci! – jldupont

+3

Notez que vous n'avez peut-être pas de répertoire de travail sale: il y a un bug dans git avant 1.7.7.1 qui signifie que git n'actualise pas ses index internes quand il exécute 'filter-branch'. Essayez donc d'exécuter ces deux commandes de toute façon - à moins que quelqu'un ne connaisse une méthode moins hacky pour forcer l'actualisation de l'index. (Plus de discussion à ce sujet sur [cette question] (http://stackoverflow.com/questions/6463963/git-filter-branch-says-working-tree-is-dirty-when-it-is-not).) –

+2

D'un commentaire ajouté sur le lien ci-dessus: 'git update-index -q --ignore-submodules --refresh' devrait mettre à jour l'index! –

Questions connexes