Supprimer une branche locale avec Git

135

J'ai googlé et il y a plusieurs très longs fils sur ce sujet et aucun d'entre eux ne semble aider. Je pense que je fais quelque chose de mal. J'ai une succursale appelée Test_Branch. Lorsque j'essaie de le supprimer à l'aide de la méthode recommandée, j'obtiens l'erreur suivante:

Impossible de supprimer la branche "Test_Branch" extraite à "[emplacement du répertoire]".

Je n'obtiens aucune autre information à part ça. Je peux facilement faire sauter la succursale distante, mais la succursale locale ne disparaîtra pas.

Bob Wakefield
la source
BTW, je suis totalement nouveau sur Git. N'utilise que depuis quelques jours. J'ai suivi plusieurs cours en ligne et lu quelques livres et les réponses ne semblent pas être là non plus.
Bob Wakefield
Si vous exécutez git branch, que dit-il?
coredump
19
En image, voici
coredump
git branch me donne * Test_Branch master
Bob Wakefield
L'étoile vous dit dans quelle branche vous vous trouvez actuellement, cela confirme ce que disent les réponses
coredump

Réponses:

245

Basculez vers une autre branche et supprimez Test_Branch, comme suit:

$ git checkout master
$ git branch -d Test_Branch

Si la commande ci-dessus vous donne une erreur - The branch 'Test_Branch' is not fully merged. If you are sure you want to delete itet que vous souhaitez toujours la supprimer, vous pouvez la forcer à la supprimer en utilisant -Dau lieu de-d , comme:

$ git branch -D Test_Branch

Pour supprimer également Test_Branchde la télécommande, exécutez:

git push origin --delete Test_Branch
Arpit Aggarwal
la source
34
Changer de branche était ce qui m'a attiré - bonne prise! Vous ne pouvez pas supprimer la branche si vous y êtes actif. ;-)
SliverNinja - MSFT
2
Si vous essayez plusieurs extractions différentes et que vous obtenez toujours le même message, regardez la sortie de git status, ou git branch; si vous rebasez Test_branch, le simple fait de vérifier une branche / un commit différent ne résoudra pas ce problème. Au lieu git rebase --abortpuis git checkout --detachet enfingit branch -D Test_branch
droïde
3
Preuve supplémentaire que git signifie "git is terrible". Plus je l'utilise, plus vous devez franchir ces cerceaux ridicules. D'autant plus que vous souhaitez probablement revenir à la même branche.
user949300
Et si quelqu'un obtient cela en retour, en essayant de changer de branche? error: you need to resolve your current index firstet ils veulent juste QUITTER? EDIT - Solution: git reset --; git checkout -D [branch_name]Ouf ..
Paul
21

Vous avez probablement extrait Test_Branch, et vous ne pouvez pas le supprimer tant qu'il s'agit de votre branche actuelle. Découvrez une autre branche, puis essayez de supprimer Test_Branch.

Randy Leberknight
la source
14

Je suis tombé dessus aujourd'hui et le passage à une autre branche n'a pas aidé. Il s'est avéré que d'une manière ou d'une autre, les informations de mon arbre de travail avaient été corrompues et qu'il y avait un arbre de travail avec le même chemin de dossier que mon répertoire de travail avec un HEADpointant sur la branche ( git worktree list). J'ai supprimé le .git/worktree/dossier qui le référençait et j'ai git branch -dtravaillé.

jinxcat2008
la source
3

Si vous avez créé plusieurs arbres de travail avec git worktree , vous devrez exécuter git pruneavant de pouvoir supprimer la branche

dkniffin
la source
3
plus précisément, vous devrez utilisergit worktree prune
Sergioet
mais lisez d'abord ce que fait git prune - pourrait entraîner une perte de données
sesquipedalias
1

Cela a fonctionné pour moi ...
J'ai supprimé les dossiers dans le dossier .git / worktrees, puis j'ai essayé "git delete -D branch-name".

Vasu
la source
1

Dans mon cas, il y avait des changements non validés par rapport à la branche précédente qui persistaient. J'ai utilisé les commandes suivantes, puis supprimer a fonctionné.

git checkout *

git checkout master

git branche -D

Sankar Natarajan
la source
0

Comme d'autres l'ont mentionné, vous ne pouvez pas supprimer la branche actuelle dans laquelle vous travaillez.

Dans mon cas, j'ai sélectionné "Test_Branch" dans Visual Studio et j'ai essayé de supprimer "Test_Branch" de Sourcetree (Git GUI). Et recevait le message d'erreur ci-dessous.

Impossible de supprimer la branche "Test_Branch" extraite à "[emplacement du répertoire]".

Passé à une branche différente dans Visual Studio et a pu supprimer "Test_Branch" de Sourcetree.

J'espère que cela aide quelqu'un qui utilise Visual Studio & Sourcetree .

Praveen Mitta
la source