Comme le titre l'indique, j'essaie d'extraire d'un référentiel git que je partage avec mon ami et je peux commettre. Il peut s'engager, mais chaque fois que l'un de nous essaye de le récupérer, il rappelle que cela a échoué: DIRTY_WORKTREE
Nous sommes tous les deux extrêmement novices, et nous ne savons absolument pas comment résoudre ce problème.
J'ai pu résoudre un problème similaire en utilisant le client en ligne de commande git. Alors qu'Eclipse (egit) ne faisait que dire DIRTY_WORKTREE, j'ai vu plusieurs fichiers en conflit dans la ligne de commande. En utilisant git merge master
à partir de la ligne de commande, je pourrais facilement résoudre les conflits puis dans Eclipse . Donc, pour moi, cela semble être un problème grave.
Une autre approche, si aucun travail n'est en cours, consiste à essayer de réinitialiser votre disque dur.
Avec EGit: Réinitialisation de votre HEAD actuel :
Sélectionnez
Team -> Reset...
sur un projet. Cela ouvre une boîte de dialogue dans laquelle vous pouvez sélectionner une branche ou une étiquette.
Réinitialisez HEAD sur votre branche actuelle, afin de réinitialiser l’index et de travail sur le dernier commit de ladite branche.
Ensuite, essayez votre traction.
J'ai eu des modifications non validées. Après que je les ai commis, puis fusionnés, le problème de l'arbre de travail sale a disparu.
Cela semble signifier que la version dans laquelle vous vous trouvez comporte des modifications qui ne sont pas encore validées. Vous devez donc supprimer ces modifications ou les valider. Notez que si vous les commettez, vous pourriez avoir des conflits de fusion.
Supprimez simplement le fichier .gitignore présent dans le dossier du projet, puis fusionnez . La fusion affichera les conflits que vous devez résoudre, puis Transmettre les modifications.
Dans Eclipse, je suis allé dans Team Synchronizing View et à partir de là, j'ai cliqué avec le bouton droit de la souris sur mon projet, puis sur "écraser" pour écraser toutes les modifications locales. Puis réessayez votre fusion.
Dans mon cas, le DIRTY_WORKTREE a été causé par cette séquence:
Dans ce scénario, Eclipse pense que votre arbre de travail est sale. En effet, ce n'est pas évident comparer deux ensembles de fichiers lorsque l’un ignore l’un des deux et que l’autre ne le fait pas.
Pour résoudre le problème dans Eclipse, j’ai fait ce qui suit:
Si vous souhaitez remplacer votre branche locale par la branche d'origine.
Allez dans la vue Repo Git> cliquez sur Maître d'origine> Choisissez réinitialiser -> il affichera l'actuel HEAD et réinitialisera la branche . Choisissez la réinitialisation HARD si vous voulez écraser complètement vos modifications locales.
J'ai eu un problème similaire sur Eclipse avec des modifications non validées comme non uniformes… .. Après un commité, je pouvais fusionner et tout était comme avant… .. Regardez votre code source et vérifiez les modifications. Sinon, vous pouvez réinitialiser le disque dur.
Seulement pour ajouter un autre cas, j'ai DIRTY_WORKTREE, je suis le seul à m'être engagé dans mon projet Github, alors dans EGit, j'ai fait une branche Push ... avec "l'écrasement forcé d'une branche sur remote si elle existe et a divergé"
DANGER: Si d'autres travaillent sur le même projet, cette action supprimera leurs commits depuis la divergence.
Si vous avez des modifications sans vous engager, Eclipse vous avertira si vous essayez de récupérer les modifications. Pour le résoudre, vous pouvez ignorer les modifications ou effectuer la validation de ces fichiers.
Source: https://www.Eclipse.org/forums/index.php?t=msg&th=890477&goto=1565668&#msg_1565668
Supprimez les fichiers concernés et réessayez. Par la suite, envoyez vos modifications au git. J'ai le même problème et cela a fonctionné pour moi.