0
votes

Pourquoi "Supprimer la branche après la fusion" supprime uniquement la branche Git distante et non la locale?

Tout comme le titre l'indique, lorsque j'approuve une demande de fusion depuis la page Web du référentiel et que je coche la case "Supprimer la branche après la fusion", seule la branche distante est supprimée. Je ne comprends pas pourquoi la succursale locale est conservée sur mon ordinateur. Que se passe-t-il si je continue à modifier cette branche locale, puis-je toujours la pousser et la fusionner?


0 commentaires

3 Réponses :


2
votes

La suppression de la version distante de la branche se fait automatiquement, car l'entité qui vous demande si vous voulez faire cela est probablement le référentiel distant. Laisser des tonnes de branches déjà fusionnées sur la télécommande peut finir par prendre beaucoup de place et éventuellement nuire aux performances. Quant à savoir si vous souhaitez ou non supprimer votre succursale locale, c'est à vous de décider.

Oui, vous pouvez continuer à utiliser cette branche locale et pousser à nouveau. Il apparaîtra à nouveau sur la télécommande, et vous pourriez, en théorie, même soulever une nouvelle demande d'extraction de cette branche une fois supprimée vers une branche cible. Cependant, la plupart des utilisateurs de Git seraient d'avis qu'une fois qu'une branche de fonctionnalité a été fusionnée, son cycle de vie est terminé, et la branche devrait pour la plupart être retirée et non utilisée après la fusion.


0 commentaires

1
votes

Git est un système de contrôle de version décentralisé. Vous devez synchroniser votre local avec l'origine si vous souhaitez appliquer des modifications d'origine dans votre local.

Pour synchroniser les branches, vous pouvez utiliser git fetch -p .

Si vous ne souhaitez pas supprimer la branche locale, vous pouvez continuer à l'utiliser et elle apparaîtra à l'origine une fois que vous la repousserez.


0 commentaires

1
votes

Le référentiel local et le référentiel distant ne restent pas en contact permanent, ils ne sont plutôt mis à jour avec l'état de chacun que lorsque des commandes git sont exécutées qui interagissent avec un référentiel distant. (Généralement toutes les commandes qui incluent origin .)

Ma façon préférée de nettoyer les branches locales fusionnées est la suivante:

git branch -d merged-branch

Cela ne supprimera merged-branch que si son contenu se trouve dans une autre branche locale, ce qui empêche la suppression de tout travail local non enregistré.

git remote prune origin

Ceci vérifie quelles branches n'existent plus sur l'origine et supprime ces pointeurs distants. (Il peut également être exécuté avec --dry-run à la fin pour montrer ce qui serait supprimé sans le faire réellement.) C'est la même chose que la commande Kevin répertoriée, sauf qu'elle ne récupère pas de nouveau références.


0 commentaires