Auto-cleanup branch-uri merge-uite in master in git

Am si eu o problema cu git-ul. Noi lucram pe un flow de tip feature-branch (facem branch pentru task-uri si le merge-uim in develop apoi in master, vezi mai multe aici: https://www.atlassian.com/git/tutorials/comparing-workflows/feature-branch-workflow).

Problema e urmatoarea: feature branch-urile astea nu se sterg automat dupa ce facem merge in master, si nu stiu cum ar fi cel mai elegant mod de a le curata. Am facut noi un script dar nu merge foarte eficient si nu e pus pe toate repositoarele care face urmatoarele: cauta branch-uri pe care nu s-a mai commit-uit de peste 30 zile, si daca toate datele au fost merge-uite in master (nu au nimic ahead), le stergem.

Stiti cumva daca exista si alte metode? Folosim bitbucket.org ca si server git.

1 Like

Eu nu am înțeles dacă vrei să le ștergi local sau de pe server?

git branch (-a|-r) --merged master
afisaza branch-urile care au fost merged in master

git branch -d feature/blabla
sterge branch-ul numai daca el a fost merge-uit in upstream-ul definit cu --set-upstream

da ca side note, ar trebui sa existe o singura persoana cu rolul de integrator si le/ea sa se ocupe de merging si clean-up

Tocmai am găsit asta: https://github.com/imsky/git-fresh

1 Like

Asta ar merge pe local, nu si pe server-side. Linkul publicat de Ionut e mai aproape de ce am nevoie (https://github.com/imsky/git-fresh7 ). Dar merci de ajutor! :slight_smile:

Cat despre rolul de integrator, noi vrem sa automatizam stergerea branch-urilor care nu mai sunt folosit pentru ca avem peste 100 de feature branch-uri care nu au fost curatate.

Tind să cred că faceți merge-ul local, nu? De ce nu folosiți pull requests? Aveți opțiunea de a șterge branch-ul după merge…

1 Like

aceeasi metoda voiam sa o sugerez si eu, mi-a luat-o Ionut inainte; eu o folosesc de cativa ani deja, tocmai pt ca e manuala si ma obliga sa iau decizii constiente, pe care sa le si motivez in comment

avantaje:

  • controlezi procesul
  • ai un istoric curat la ceea ce s-a facut merge si cand

dezavantaje:

  • e manual

Facem prin pull-requests, numai ca nu stergem branchurile la merge. S-a dovedit ca am mai avut nevoie de branch-uri dupa pull request. Dar probabil ca aveti dreptate, ar trebui sterse si oricum se pot crea, mai ales daca nu au fost sterse de pe local.

Noi am facut asta cu un script care facea chestia asta automat si a mers destul de ok, script facut custom de un developer care nu mai lucreaza la noi. Acum vad ca nu mai vrea sa stearga din motiv necunoscut si m-am gandit sa abordez tactica “how others do it” prin a cere un sfat :-).

Multam tututor de ajutor!