Πώς να διαγράψετε ένα υποκατάστημα Git τόσο τοπικά όσο και απομακρυσμένα

Στις περισσότερες περιπτώσεις, είναι απλό να διαγράψετε ένα υποκατάστημα Git. Θα μάθετε πώς μπορείτε να διαγράψετε ένα Git brach τοπικά και απομακρυσμένα σε αυτό το άρθρο.

TL; DR έκδοση

// delete branch locally git branch -d localBranchName // delete branch remotely git push origin --delete remoteBranchName 

Πότε να διαγράψετε κλάδους

Είναι κοινό για ένα Git repo να έχει διαφορετικά υποκαταστήματα. Είναι ένας πολύ καλός τρόπος για να εργαστείτε σε διαφορετικές δυνατότητες και επιδιορθώσεις, ενώ ταυτόχρονα απομονώνετε τον νέο κώδικα από την κύρια βάση κώδικα.

Τα repos έχουν συχνά έναν masterκλάδο για την κύρια βάση κώδικα και οι προγραμματιστές δημιουργούν άλλους κλάδους για να εργαστούν σε διαφορετικές λειτουργίες.

Μόλις ολοκληρωθεί η εργασία σε μια λειτουργία, συνιστάται συχνά η διαγραφή του υποκαταστήματος.

Διαγραφή υποκαταστήματος ΤΟΠΙΚΑ

Το Git δεν θα σας επιτρέψει να διαγράψετε το υποκατάστημα στο οποίο βρίσκεστε αυτήν τη στιγμή, οπότε πρέπει να βεβαιωθείτε ότι έχετε ελέγξει ένα κλαδί που ΔΕΝ διαγράφετε. Για παράδειγμα:git checkout master

Διαγράψτε ένα υποκατάστημα με git branch -d .

Για παράδειγμα: git branch -d fix/authentication

Η -dεπιλογή θα διαγράψει τον κλάδο μόνο εάν έχει ήδη προωθηθεί και συγχωνευθεί με τον απομακρυσμένο κλάδο. Χρησιμοποιήστε -Dαντ 'αυτού εάν θέλετε να εξαναγκάσετε τη διαγραφή του κλάδου, ακόμα κι αν δεν έχει ωθηθεί ή συγχωνευθεί ακόμα.

Ο κλάδος διαγράφεται τώρα τοπικά.

Διαγραφή υποκαταστήματος ΑΜΕΣΩΣ

Εδώ είναι η εντολή για να διαγράψετε ένα κλαδί από απόσταση: git push --delete .

Για παράδειγμα: git push origin --delete fix/authentication

Ο κλάδος διαγράφεται πλέον από απόσταση.

Μπορείτε επίσης να χρησιμοποιήσετε αυτήν τη συντομότερη εντολή για να διαγράψετε έναν κλάδο από απόσταση: git push :

Για παράδειγμα: git push origin :fix/authentication

Εάν λάβετε το σφάλμα παρακάτω, αυτό μπορεί να σημαίνει ότι κάποιος άλλος έχει ήδη διαγράψει το υποκατάστημα.

error: unable to push to unqualified destination: remoteBranchName The destination refspec neither matches an existing ref on the remote nor begins with refs/, and we are unable to guess a prefix based on the source ref. error: failed to push some refs to '[email protected]_name' 

Προσπαθήστε να συγχρονίσετε τη λίστα υποκαταστημάτων σας χρησιμοποιώντας:

git fetch -p 

Η -pσημαία σημαίνει "δαμάσκηνο". Μετά τη λήψη, τα κλαδιά που δεν υπάρχουν πλέον στο τηλεχειριστήριο θα διαγραφούν.