In breve;
- Come posso eliminare più telecomandi uniti?
Più background;
Ho un repository git con decine di telecomandi che sono stati uniti in master. Posso eliminare questi telecomandi uno alla volta utilizzando:
git push --delete origin myBranch-1234
Tuttavia questo è un processo lento e noioso per tutti i telecomandi. Quindi sto provando questo comando:
git branch -r --merged | grep origin | grep -v master | xargs git push origin --delete
git branch -r --merged
elenca tutti i telecomandi uniti.
grep origin
dice al comando di includere origin.
grep -v master
dice al comando di escludere il master.
xargs git push origin --delete
dice al comando di eliminare l'elenco dei telecomandi.
Tutti insieme, mi aspetto che questo raccolga tutti i telecomandi uniti e li elimini.
Quando eseguo il comando precedente, ricevo quanto segue per ogni telecomando unito;
error: unable to delete 'origin/myBranch-1234': remote ref does not exist
error: unable to delete 'origin/myBranch-1235': remote ref does not exist
error: unable to delete 'origin/myBranch-1236': remote ref does not exist
error: unable to delete 'origin/myBranch-1237': remote ref does not exist
... etc
Tuttavia questi telecomandi esistono e posso controllarli tutti. Molti siti e persone mi consigliano di correre git fetch --prune
per ripulire i riferimenti mancanti. Questo non fa nulla perché tutti questi telecomandi esistono.
Quindi ti chiedo, caro scambio di pile;
- Perché posso eliminare un telecomando, ma non molti?
- Il mio comando è corretto?
Penso che mi manchi qualcosa di piccolo. Ogni volta che cerco questo, sembra che lo sto facendo correttamente, ma ricevo gli errori di cui sopra.
--prune
? A mio parere è piuttosto fuorviante