Git: Πώς να αφαιρέσετε ένα αρχείο από το Commit

Git: Πώς να αφαιρέσετε ένα αρχείο από το Commit

Ατυχήματα συμβαίνουν εάν εργάζεστε στο Git. Μπορεί να έχετε συμπεριλάβει κατά λάθος ένα αρχείο που δεν θα έπρεπε να υπάρχει ή η δέσμευσή σας δεν είναι πολύ σαφής. Αυτά είναι μερικά μόνο σενάρια όταν μπορεί να θέλετε να διαγράψετε ένα αρχείο από μια δέσμευση.

Git: Πώς να αφαιρέσετε ένα αρχείο από το Commit

Αυτός ο οδηγός θα σας πει ακριβώς πώς να διαγράψετε ένα αρχείο από ένα commit και γιατί θα πρέπει να είστε ιδιαίτερα προσεκτικοί σχετικά με τη διαγραφή του αρχείου Git.

Πώς να αφαιρέσετε ένα αρχείο από μια δέσμευση Git

Υπάρχουν μερικοί τρόποι για να διαγράψετε ένα αρχείο από μια δέσμευση Git, ανάλογα με το αν πρόκειται για τοπική δέσμευση ή το έχετε ήδη προωθήσει σε ένα απομακρυσμένο αποθετήριο. Ο απλός τρόπος θα ήταν να διαγράψετε ολόκληρη τη δέσμευση στο Git , αλλά αν θέλετε να κρατήσετε τα περισσότερα από τα αρχεία, δείτε πώς μπορείτε να χρησιμοποιήσετε το "git reset" για να διαγράψετε ένα αρχείο από ένα τοπικό αποθετήριο:

  1. Χρησιμοποιήστε το αρχείο καταγραφής git για να βρείτε το commit που έχει το αρχείο που θέλετε να καταργήσετε.
    Git: Πώς να αφαιρέσετε ένα αρχείο από το Commit
  2. Εκτελέστε το git reset –soft HEAD^ για να αναιρέσετε την τελευταία δέσμευση αλλά να διατηρήσετε τις αλλαγές στην περιοχή σταδίου.
    Git: Πώς να αφαιρέσετε ένα αρχείο από το Commit
  3. Καταργήστε το στάδιο του αρχείου που θέλετε να καταργήσετε με το git reset HEAD .
    Τρέχοντας το" στο τερματικό" width="578" height="363" data-recalc-dims="1" data-src="https://i0.wp.com/www.alphr.com/wp-content/uploads/ 2023/12/Removing-a-File-From-a-Commit-Step-by-Step-3.png?resize=578%2C363&ssl=1" data-srcset="https://i0.wp.com/www .alphr.com/wp-content/uploads/2023/12/Removing-a-File-From-a-Commit-Step-by-Step-3.png?w=578&ssl=1 578w, https://i0. wp.com/www.alphr.com/wp-content/uploads/2023/12/Removing-a-File-From-a-Commit-Step-by-Step-3.png?resize=300%2C188&ssl=1 300w , https://i0.wp.com/www.alphr.com/wp-content/uploads/2023/12/Removing-a-File-From-a-Commit-Step-by-Step-3.png?resize =510%2C320&ssl=1 510w, https://i0.wp.com/www.alphr.com/wp-content/uploads/2023/12/Removing-a-File-From-a-Commit-Step-by- Step-3.png?resize=400%2C250&ssl=1 400w, https://i0.wp.com/www.alphr.com/wp-content/uploads/2023/12/Removing-a-File-From-a -Commit-Step-by-Step-3.png?resize=302%2C190&ssl=1 302w" data-sizes="(max-width: 578px) 100vw, 578px">
  4. Υποβάλετε ξανά τα υπόλοιπα αρχεία χρησιμοποιώντας το git commit -m «Το μήνυμα δέσμευσής σας».
    Git: Πώς να αφαιρέσετε ένα αρχείο από το Commit

Από την ενημέρωση του Git 2.23.0, μπορείτε επίσης να χρησιμοποιήσετε το "git restore" ως εξής:

  1. Εισαγάγετε το git restore –staged και αντικαταστήστε το "filepath" με το αρχείο που θέλετε να αφαιρέσετε.
    Εκτελώντας το" εντολή στη γραμμή εντολών" width="578" height="363" data-recalc-dims="1" data-src="https://i0.wp.com/www.alphr.com/wp-content /uploads/2023/12/git-restore-1.png?resize=578%2C363&ssl=1" data-srcset="https://i0.wp.com/www.alphr.com/wp-content/uploads/ 2023/12/git-restore-1.png?w=578&ssl=1 578w, https://i0.wp.com/www.alphr.com/wp-content/uploads/2023/12/git-restore-1 .png?resize=300%2C188&ssl=1 300w, https://i0.wp.com/www.alphr.com/wp-content/uploads/2023/12/git-restore-1.png?resize=510% 2C320&ssl=1 510w, https://i0.wp.com/www.alphr.com/wp-content/uploads/2023/12/git-restore-1.png?resize=400%2C250&ssl=1 400w, https: //i0.wp.com/www.alphr.com/wp-content/uploads/2023/12/git-restore-1.png?resize=302%2C190&ssl=1 302w" data-sizes="(max-width : 578px) 100vw, 578px">
  2. Στη συνέχεια δεσμεύστε: git commit -c ORIG_HEAD .
    Git: Πώς να αφαιρέσετε ένα αρχείο από το Commit

Μια άλλη εναλλακτική λύση για την πλήρη κατάργηση του αρχείου είναι να κάνετε αυτό:

  1. Αφαιρέστε το αρχείο με το git rm .
    Git: Πώς να αφαιρέσετε ένα αρχείο από το Commit
  2. Αντικαταστήστε το «όνομα αρχείου» με το πραγματικό όνομα του αρχείου.
  3. Δέσμευση με το amend flag πληκτρολογώντας git commit –amend .
    Git: Πώς να αφαιρέσετε ένα αρχείο από το Commit

Η εντολή "rm" αφαιρεί ένα αρχείο τόσο από το δέντρο εργασίας όσο και από το ευρετήριο. Αυτό σημαίνει ότι θα εξαφανιστεί εντελώς τόσο από τα τοπικά όσο και από τα απομακρυσμένα repos. Είναι μια χρήσιμη εντολή όταν παρακολουθείτε ένα αρχείο και αργότερα αποφασίζετε ότι δεν χρειάζεται πλέον να παρακολουθείται, ώστε να μπορείτε να το διαγράψετε από ολόκληρο το έργο.

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

Γιατί να αφαιρέσετε ένα αρχείο από μια δέσμευση Git;

Υπάρχουν διάφοροι λόγοι για τους οποίους μπορεί να χρειαστεί να αφαιρέσετε ένα αρχείο από μια δέσμευση Git. Ας ρίξουμε μια ματιά σε μερικά.

Απλοποίηση του ιστορικού δέσμευσης

Σε μεγάλα και πολύπλοκα έργα, το ιστορικό δέσμευσης μπορεί να επιβαρύνεται υπερβολικά με αλλαγές, ενημερώσεις και διορθώσεις. Και μερικές από αυτές τις αλλαγές απλά δεν χρειάζεται να υπάρχουν. Μερικές φορές, μπορεί να δεσμευτεί ένα αρχείο που δεν κάνει καμία χάρη στην πρόοδο ή τη σαφήνεια του έργου – όπως μια πειραματική λειτουργία που δεν ολοκληρώθηκε ή ένα προσωρινό αρχείο που έχει υπερβεί το ευπρόσδεκτο.

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

Διόρθωση Λάθη

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

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

Αφαίρεση ευαίσθητων ή διαβαθμισμένων δεδομένων

Είναι ευκολότερο από ό,τι φαίνεται να δεσμεύσετε κατά λάθος ευαίσθητα δεδομένα. Αλλά είναι ένα λάθος που θα μπορούσε να έχει σοβαρές συνέπειες. Για παράδειγμα, τα κλειδιά API αποτελούν μεγάλο μέρος πολλών έργων κωδικοποίησης στις μέρες μας, ειδικά με την άνοδο της τεχνητής νοημοσύνης και την πιο έντονη ενσωμάτωση στο web. Αλλά τα κλειδιά API είναι ιδιωτικά και πρέπει να φυλάσσονται μακριά από τα αδιάκριτα βλέμματα. Θα μπορούσατε να εργάζεστε σε μια νέα δυνατότητα χρησιμοποιώντας ένα API και να δεσμεύσετε κατά λάθος ένα αρχείο που περιέχει το κλειδί ή ένα αρχείο διαμόρφωσης με διαπιστευτήρια βάσης δεδομένων.

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

Σκέψεις που πρέπει να έχετε κατά νου

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

Συγκρούσεις αποθετηρίων

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

Αυτό θα μπορούσε να είναι τόσο απλό όσο να στείλετε ένα μήνυμα στην πλατφόρμα συνομιλίας της ομάδας σας ή να το αναφέρετε σε μια stand-up συνάντηση. Αυτό το heads-up δεν έχει να κάνει μόνο με το να είσαι ευγενικός. Επιτρέπει στα μέλη της ομάδας σας να συνεχίσουν την εργασία τους χωρίς προβλήματα. Ανοίγει επίσης την πόρτα για ανατροφοδότηση – ίσως ένας συμπαίκτης να έχει λόγο για να κρατήσει αυτό το αρχείο στο commit ή ίσως να έχει μια καλύτερη λύση στο πρόβλημα.

Χαμένα Δεδομένα

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

Αναρωτηθείτε: "Περιέχει αυτό το αρχείο κώδικα, δεδομένα ή πληροφορίες που μπορεί να χρειαστούν αργότερα;" Είναι σαν να περνάς από έναν παλιό φάκελο στον υπολογιστή σου. Μερικές φορές, βρίσκετε αρχεία που φαίνονταν ασήμαντα εκείνη τη στιγμή, αλλά έχουν αξία τώρα. Με αυτόν τον τρόπο, δεν θα καταλήξετε σε μια κατάσταση όπου ψάχνετε μανιωδώς για ένα κομμάτι κώδικα ή δεδομένα που εσφαλμένα θεωρούσατε περιττό πριν.

Το Revert είναι καλύτερο για δημόσια αποθετήρια

Όταν ασχολείστε με δημόσια αποθετήρια, είναι συχνά καλύτερο να χρησιμοποιείτε το " git revert " ως μη καταστροφικό τρόπο για να αφαιρέσετε κάτι από το αποθετήριο. Σας επιτρέπει να αναιρέσετε τις αλλαγές με διαφανή και ανιχνεύσιμο τρόπο που μπορούν εύκολα να ακολουθήσουν τα μέλη της ομάδας σας.

Εάν εργάζεστε σε έργα ανοιχτού κώδικα ή σε οποιαδήποτε προσπάθεια δημόσιας συνεργασίας όπου οι αλλαγές μπορούν να επηρεάσουν ένα ευρύ φάσμα συνεργατών, αυτό διατηρεί τα πάντα ξεκάθαρα. Η εντολή "git revert" ουσιαστικά δημιουργεί μια νέα δέσμευση που αναιρεί τις αλλαγές από μια προηγούμενη χωρίς να αλλάξει το ιστορικό του έργου. Σέβεται τους άλλους συνεργάτες και διατηρεί τη συνέχεια και την ακεραιότητα του χρονοδιαγράμματος του έργου. Διορθώνετε ανοιχτά ένα λάθος σε ένα ομαδικό έργο και διατηρείτε τις συνεισφορές όλων. Και η ιστορία του έργου παραμένει ανέπαφη για να τη δουν και να την κατανοήσουν όλοι.

Διατηρήστε τακτοποιημένο το ιστορικό Git

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

Έχετε συμπεριλάβει ποτέ κατά λάθος ένα λάθος αρχείο στην δέσμευσή σας στο Git; Ποια ήταν η λύση σας; Αφήστε ένα σχόλιο παρακάτω. Είμαστε πάντα πρόθυμοι να τα διαβάσουμε.


Πώς λειτουργούν οι απάτες στο Facebook Marketplace

Πώς λειτουργούν οι απάτες στο Facebook Marketplace

Το Facebook Marketplace είναι ένας από τους μεγαλύτερους λιανοπωλητές μεταχειρισμένων προϊόντων στο διαδίκτυο σήμερα. Αν και υπάρχουν πλεονεκτήματα στη χρήση του Marketplace – όπως η κατασκευή

Πώς να εξαναγκάσετε ένα πρόγραμμα να ανοίξει σε μια συγκεκριμένη οθόνη

Πώς να εξαναγκάσετε ένα πρόγραμμα να ανοίξει σε μια συγκεκριμένη οθόνη

Πολλοί χρήστες Windows σήμερα προτιμούν να εργάζονται με περισσότερες από μία οθόνες, επιτρέποντάς τους να βλέπουν δύο σελίδες ή εφαρμογές ταυτόχρονα. Λόγω αυτής της προτίμησης,

Πώς να προσθέσετε το Google Drive στον Εξερεύνηση αρχείων

Πώς να προσθέσετε το Google Drive στον Εξερεύνηση αρχείων

Εάν είστε άτομο υπολογιστή με Windows, είστε εξοικειωμένοι με την Εξερεύνηση αρχείων. Τα Windows 10 έφεραν μια βελτιωμένη έκδοση, επιτρέποντάς σας να έχετε εύκολη πρόσβαση στο One Drive.

Η άνοδος των ρομπότ θα μπορούσε να «κάνει χειρότερο τη διαίρεση βορρά-νότου του Ηνωμένου Βασιλείου»

Η άνοδος των ρομπότ θα μπορούσε να «κάνει χειρότερο τη διαίρεση βορρά-νότου του Ηνωμένου Βασιλείου»

Η τεχνολογική πρόοδος είναι φυσιολογική. Μια σταθερή ροή νέων εξελίξεων επιτρέπει τη σταδιακή αύξηση της ευημερίας. Αλλά μερικές φορές – και ίσως τώρα είναι κάτι τέτοιο

Αυτός ο κυβερνητικός ιστότοπος Cyber ​​Aware κοστίζει 6,37 £ ανά επίσκεψη από τότε που κυκλοφόρησε

Αυτός ο κυβερνητικός ιστότοπος Cyber ​​Aware κοστίζει 6,37 £ ανά επίσκεψη από τότε που κυκλοφόρησε

Μπορεί να έχετε δει αφίσες όπως η παραπάνω στο Tube. Εάν ακολουθήσατε τον σύνδεσμο που περιλαμβάνεται, τότε είστε στη μειοψηφία. Κυβέρνηση Cyber ​​Aware

Πώς να απενεργοποιήσετε τα στοιχεία ελέγχου στο Roblox

Πώς να απενεργοποιήσετε τα στοιχεία ελέγχου στο Roblox

Μπορεί να έχουν διαφορετικό τρόπο ζωής και ηλικίες, αλλά παίκτες από όλο τον κόσμο διασκεδάζουν όλοι με παιχνίδια στο Roblox. Η πλατφόρμα έχει πολλούς τίτλους, μεταξύ των οποίων

Δωρεάν Πρότυπα Παρουσιάσεων Google

Δωρεάν Πρότυπα Παρουσιάσεων Google

Οι Παρουσιάσεις Google είναι το καλύτερο μέρος για την πηγή δωρεάν προτύπων για τη μορφοποίηση και τη δημιουργία παρουσιάσεων. Δωρεάν για τους χρήστες του Gmail και μέρος του G-Suite, μπορείτε να επιλέξετε

Πώς να αλλάξετε την περιοχή σε μια τηλεόραση LG

Πώς να αλλάξετε την περιοχή σε μια τηλεόραση LG

Ορισμένες επιλογές στην τηλεόρασή σας LG είναι διαθέσιμες σε ορισμένες χώρες, αλλά όχι σε άλλες. Αυτό σημαίνει ότι δυνητικά χάνετε τις πιο πρόσφατες διαθέσιμες λειτουργίες.

Πώς να κάνετε στιγμιότυπο οθόνης σε Mac Pro

Πώς να κάνετε στιγμιότυπο οθόνης σε Mac Pro

Ίσως χρειαστεί να τραβήξετε κάτι γρήγορα κάθε τόσο, και το Screenshot είναι το τέλειο εργαλείο για να το κάνετε αυτό. Η Apple έχει εξορθολογίσει σημαντικά το

Πώς να αποκτήσετε και να διατηρήσετε το κουμπί εγγραφής στο Snapchat

Πώς να αποκτήσετε και να διατηρήσετε το κουμπί εγγραφής στο Snapchat

https://www.youtube.com/watch?v=Y9EoUvRpZ2s Μόλις γίνετε επίσημος δημιουργός του Snapchat, θα έχετε το κουμπί Εγγραφή δίπλα στο όνομά σας. Τι χρειάζεσαι