web-dev-qa-db-fra.com

Comment supprimer (ou fusionner) une branche Git locale sur laquelle je suis actuellement?

Je suis assez nouveau dans l'utilisation de git, et je l'utilise pour contribuer à la ROM AOKP Android. J'ai réussi à créer quelques branches, à modifier le code et à télécharger les commits qui ont été obtenus fusionné sur l'extrémité distante. Mais dans mon référentiel local, ces branches s'affichent toujours (même si elles ne présentent aucun changement). Le problème est que lorsque j'ai créé ces branches, je l'ai fait directement à partir du sous-dossier qui devait être modifié, donc je n'ai pas de branches "supérieures" où aller. Et à cause de cela, je ne peux pas supprimer ces branches - git tels me error: Cannot delete the branch 'MyMods' which you are currently on.

Alors, que puis-je faire pour me débarrasser de ces branches?

36
user496854

Extraire d'abord une branche différente, avant de la supprimer:

git checkout master
git branch -d MyMods

De plus, les branches n'ont rien à voir avec les dossiers. Git suit toujours l'ensemble du référentiel à la fois, avec tous ses dossiers et fichiers. Une branche n'est rien d'autre qu'un pointeur vers un seul commit, ou instantané, dans l'historique du référentiel.

52
poke

Oui, il suffit de commander une autre branche (peut-être maître), puis:

git checkout master
git branch -d thebran
4
slash28cu

Si la branche que vous ne pouvez pas supprimer est un arbre de travail, vous devrez peut-être d'abord supprimer cet arbre de travail:

rm -r MyMods
git worktree list    # shows MyMods
git worktree Prune
git worktree list    # doesn't show MyMods
git branch -d MyMods
1
101

Mais dans mon référentiel local, ces branches apparaissent toujours (même si elles apparaissent comme n'ayant aucun changement).

Les succursales apparaîtront dans votre référentiel local, sauf si vous les supprimez. Ils ne disparaissent pas lorsque vous les poussez.

Les réponses ci-dessus vous indiquent comment supprimer une branche. Cependant, j'ajouterais que l'utilisation de l'option -D est un peu plus puissante. Cette option supprime la branche quel que soit son état (dé) fusionné:

git branch -D branchName

C'est la bombe atomique de suppression de branche. Utilisez avec précaution.

0
gitlinggun