99 votes

git checkout master error : les fichiers suivants de l'arbre de travail non suivi seraient écrasés par le checkout

J'ai un dépôt git. Il a A B C D E ... commits. Maintenant, je veux extraire D comme une nouvelle branche nommée Dbranch. Donc j'exécute : git checkout D -b Dbranch . Et maintenant je veux supprimer cette branche. Tout d'abord, je dois passer à la branche master, puis utiliser la commande git branch -d Dbranch pour le supprimer. Mais quand j'excute git checkout master il me donne l'erreur.

error: The following untracked working tree files would be overwritten by checkout:
    source/a/foo.c
        ...... (too many lines)
Please move or remove them before you can switch branches.
Aborting

Comment supprimer le Dbranch ?

244voto

dekdev Points 1323

Essayez git checkout -f master .

-f o --force

Source : https://www.kernel.org/pub/software/scm/git/docs/git-checkout.html

Lorsque l'on change de branche, on procède même si l'index ou l'arbre de travail diffère de HEAD. Ceci est utilisé pour jeter les changements locaux.

Lors de la vérification des chemins à partir de l'index, ne pas échouer sur les entrées nonmergées ; au contraire, les entrées nonmergées sont ignorées.

33voto

VonC Points 414372

Avec Git 2.23 (août 2019), ce serait, en utilisant git switch -f :

git switch -f master

Cela permet d'éviter la confusion avec git checkout (qui traite des fichiers ou des branches).

Et cela se poursuivra, même si l'index ou l'arbre de travail diffère de HEAD.
L'index et l'arbre de travail sont restaurés pour correspondre à la cible de commutation.
Si --recurse-submodules est spécifié, le contenu du sous-module est également restauré pour correspondre à la cible de commutation.
Ceci est utilisé pour jeter les changements locaux.

-2voto

Mali Points 2507

Faites un :

git branch

si git vous montre quelque chose comme :

* (no branch)
master
Dbranch

Vous avez un "detached HEAD". Si vous avez modifié certains fichiers sur cette branche, commitez-les, puis retournez à master avec

git checkout master 

Maintenant, vous devriez être en mesure de supprimer le Dbranch.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X