Η ανάπτυξη του έργου σας μέσω απομακρυσμένου αποθετηρίου σας επιτρέπει να διαχειρίζεστε με ευελιξία κάθε κομμάτι του. Διορθώσεις σφαλμάτων, ενημερώσεις χαρακτηριστικών, διαγραφή αρχείων, ομαδική εργασία, συνεισφορές ανοιχτού κώδικα, ανάπτυξη κώδικα και πολλά άλλα είναι τώρα στη διάθεσή σας με ισχυρή γνώση του Git.
Λοιπόν, χρησιμοποιείτε το Git αλλά θέλετε να μάθετε περισσότερα; Ακολουθούν μερικές πιο προηγμένες συμβουλές για το Git που θα κάνουν τον έλεγχο της έκδοσης του έργου σας αέρας.
Git Branch
Ένας κλάδος Git σας εμποδίζει να σπρώξετε απευθείας στον κύριο κλάδο. Είναι χρήσιμο εάν διαχειρίζεστε ένα έργο με μια ομάδα προγραμματιστών. Μπορείτε να δημιουργήσετε όσα υποκαταστήματα Git θέλετε και στη συνέχεια να τα συγχωνεύσετε στον κύριο κλάδο αργότερα.
Δημιουργήστε έναν κλάδο Git
Για να δημιουργήσετε έναν κλάδο Git, χρησιμοποιήστε:
git branch branch_name
Μετάβαση σε υποκατάστημα Git
Χρήση ολοκλήρωση παραγγελίας για μετάβαση σε υποκατάστημα Git:
git checkout branch_name
Μετά τη μετάβαση σε υποκατάστημα, μπορείτε να πραγματοποιήσετε σταδιακές αλλαγές χρησιμοποιώντας git add -all Το Στη συνέχεια δεσμεύστε τα χρησιμοποιώντας το git commit -m 'όνομα ονόματος' εντολή.
Συγκρίνετε έναν κλάδο με τον κύριο
Χρησιμοποιήστε το git διαφορά εντολή:
git diff master..branch_name
Για να συγκρίνετε συγκεκριμένα αρχεία:
git diff master..testb -- main.html
Η σύγκριση δύο κλάδων είναι παρόμοια με τη σύγκριση ενός κλάδου με τον κύριο:
git diff branch1..branch2
Για να δείτε τις διαφορές σε ένα συγκεκριμένο αρχείο μεταξύ δύο κλάδων:
git diff branch1..branch2 -- main.html
Προώθηση αλλαγών σε απομακρυσμένο υποκατάστημα
Μπορεί να θέλετε ένας άλλος προγραμματιστής να εξετάσει τις αλλαγές που έχετε κάνει σε ένα αρχείο στο τοπικό σας υποκατάστημα, προτού τα πιέσετε ζωντανά. Μια καλή πρακτική είναι να τοποθετήσετε το τοπικό σας υποκατάστημα Git σε ένα απομακρυσμένο αντίγραφο, ώστε να μπορούν να ρίξουν μια ματιά.
Ας υποθέσουμε ότι έχετε δημιουργήσει προηγουμένως ένα τοπικό υποκατάστημα με όνομα αλλαγές Το Μπορείτε να μεταβείτε σε αυτόν τον τοπικό κλάδο, να προσαρμόσετε όλα τα αρχεία που θέλετε, στη συνέχεια να τα τοποθετήσετε και να τα δεσμεύσετε σε αυτόν τον κλάδο.
Στη συνέχεια, μπορείτε να προωθήσετε αυτές τις αλλαγές στην απομακρυσμένη έκδοση του κλάδου:
git push origin changes
Συγχώνευση απομακρυσμένου κλάδου με κύριο χρησιμοποιώντας το Pull Request
Ένας άλλος προγραμματιστής έχει ελέγξει τις αλλαγές στο απομακρυσμένο υποκατάστημα ( αλλαγές ). Αλλά θέλετε να το συγχωνεύσετε με τον κύριο κλάδο και να το σπρώξετε ζωντανά.
Θυμηθείτε ότι το απομακρυσμένο υποκατάστημά σας κληρονομεί το όνομα του τοπικού υποκαταστήματος Git ( αλλαγές ). Δείτε πώς μπορείτε να συγχωνεύσετε τις αλλαγές:
Μετάβαση στον κύριο κλάδο:
git checkout master
Τραβήξτε την προέλευση ή την κεφαλή του κλάδου ( αλλαγές ) για να το συγχωνεύσετε με τον κύριο κλάδο:
git pull origin changes
Προωθήστε αυτήν τη συγχώνευση ζωντανά στον κύριο κλάδο:
git push origin master
Χρησιμοποιήστε το Git Merge Αντ 'αυτού
Για να συγχωνεύσετε έναν κλάδο με τον κύριο χρησιμοποιώντας το πηγαίνω εντολή:
Μετάβαση στον κύριο κλάδο:
git checkout master
Συγχωνεύστε το με το υποκατάστημα ( αλλαγές ):
git merge changes
Στη συνέχεια, προωθήστε τη συγχώνευση ζωντανά στον κύριο κλάδο:
ο υπολογιστής δεν διαβάζει εξωτερικό σκληρό δίσκο
git push origin master
Βεβαιωθείτε ότι αντικαθιστάτε αλλαγές με το όνομα του υποκαταστήματος σας.
Μόλις μια συγχώνευση είναι επιτυχής, μπορείτε στη συνέχεια διαγράψτε το υποκατάστημα τοπικά και από απόσταση αν δεν το χρειάζεστε πια:
Σχετίζεται με: Πώς να μετονομάσετε ένα υποκατάστημα στο Git
Git Rebase
Εάν έχετε πολλαπλά υποκαταστήματα με ξεπερασμένες δεσμεύσεις, μπορείτε να επανατοποθετήσετε ή να εστιάσετε ξανά head/refs αυτών των κλάδων να κληρονομήσουν το head/refs ενός ενημερωμένου.
Επομένως, η αναβάθμιση είναι χρήσιμη όταν πρέπει να ενημερώσετε ορισμένους κλάδους με τη βάση ενός τρέχοντος.
Ωστόσο, το ξεκούμπωμα δεν πρέπει να είναι μια συχνή ενέργεια, ειδικά αν εργάζεστε με μια ομάδα καθώς μπορεί να διαταράξει ολόκληρη τη ροή εργασίας. Αλλά αν εργάζεστε μόνοι και είστε εξοικειωμένοι με τη ροή εργασίας και τους κλάδους σας, η επαναρρύθμιση δεν θα πρέπει να προκαλέσει όλεθρο εάν γνωρίζετε πού και πώς να το χρησιμοποιήσετε.
Για παράδειγμα, ας υποθέσουμε ότι έχετε δύο κλάδους. κλάδος1 και κλάδος2. Τώρα, δεν έχετε κάνει αλλαγές στον κλάδο 1 εδώ και αρκετό καιρό. Αλλά δεσμεύεστε σταθερά για αλλαγές στον κλάδο 2, συμπεριλαμβανομένων πρόσφατα.
Έτσι αποφασίσατε να μεταφέρετε τον κλάδο 1 μαζί με τη ροή. Επομένως, η μεταφορά υποκαταστήματος 1 σε κλάδο 2 σημαίνει ότι λέτε στον κλάδο 1 να αγνοήσει τις προηγούμενες δεσμεύσεις του και να κληρονομήσει την πρόσφατη δέσμευση που έγινε στον κλάδο 2.
Δείτε πώς μπορείτε να το κάνετε αυτό:
Μετάβαση στον εγκαταλειμμένο κλάδο (κλάδος 1):
git checkout branch1
Στη συνέχεια, επανατοποθετήστε τον κλάδο 1 στον ενημερωμένο κλάδο 2:
git rebase branch2
Git Squash
Το Git squash σάς επιτρέπει να συγχωνεύσετε πολλές δεσμεύσεις σε ένα. Βοηθάει όταν τρέχετε git commit πολλές φορές σε μία μόνο ενημέρωση. Ένα πρακτικό παράδειγμα είναι όταν κάθε επιδιόρθωση σφαλμάτων ή αντιδραστήρας κώδικα για ένα μόνο χαρακτηριστικό έχει ξεχωριστή δέσμευση.
Αλλά μπορεί να μην θέλετε να πιέσετε τη δέσμευση HEAD με τα συνοδευτικά, καθώς όλα έχουν τον ίδιο σκοπό. Μια συνιστώμενη προσέγγιση είναι να τα συμπιέσετε σε ένα για να αποφύγετε τη σύγχυση κατά την παρακολούθηση των δεσμεύσεων.
Ο καλύτερος τρόπος για να στριμώξετε τις δεσμεύσεις είναι μέσω της διαδραστικής λειτουργίας rebase. Ρίξτε μια ματιά στο παρακάτω παράδειγμα για να το καταλάβετε καλύτερα.
Σε αυτό το παράδειγμα, υποθέστε ότι έχετε πέντε διορθώσεις σφαλμάτων. Και υπάρχει μια δέσμευση για καθένα από αυτά. Δείτε πώς μπορείτε να συμπιέσετε αυτές τις πέντε δεσμεύσεις σε μία:
Τρέξιμο git reflog για να δείτε τον κωδικό κατακερματισμού των δεσμεύσεών σας:
git reflog
Ακολουθεί το αποτέλεσμα σε αυτήν την περίπτωση:
Τώρα ο στόχος σας είναι να στριμώξετε τις πέντε τελευταίες δεσμεύσεις, ξεκινώντας με πρώτη διόρθωση μέχρι και πέμπτη διόρθωση Το
Για να το κάνετε αυτό, αντιγράψτε τον κωδικό κατακερματισμού της δέσμευσης ακριβώς παρακάτω πρώτη διόρθωση ( 0a83962 ). Στη συνέχεια πατήστε ΕΡ να εγκαταλείψει το ξανανεφορτώ Το
Τώρα τρέξτε git rebase -διαδραστικό σε αυτό το hash.
git rebase --interactive 0a83962
Στη συνέχεια, το Git ανοίγει ένα διαδραστικό αρχείο rebase που μοιάζει με αυτό:
Για να στριμώξετε τις δεσμεύσεις, εξαιρουμένων των πρώτη διόρθωση , αντικαταστήστε διαλέγω με μικρό για καθεμία από τις άλλες δεσμεύσεις:
Αποθηκεύστε και κλείστε αυτό το αρχείο.
Στη συνέχεια, ανοίγει ένα άλλο αρχείο για να μετονομάσετε την συμπιεσμένη συμπίεση:
μπορείτε να χρησιμοποιήσετε airpods μήλου με Android
Καθαρίστε αυτά και πληκτρολογήστε ένα προτιμώμενο όνομα για τη συμπιεσμένη δέσμευση:
Αποθηκεύστε αυτό το αρχείο. Στη συνέχεια, κλείστε το και θα λάβετε ένα μήνυμα επιτυχίας στο τερματικό σας.
Σημείωση: Το διαδραστικό αρχείο ενδέχεται να ανοίξει μέσα στο τερματικό. Αλλά αν χρησιμοποιείτε Windows, ίσως θελήσετε να αναγκάσετε το τερματικό σας να ανοίξει παγκόσμια αρχεία στον αγαπημένο σας επεξεργαστή κειμένου για να διευκολύνει το σκίσιμο.
Για να το κάνετε αυτό, ανοίξτε τη γραμμή εντολών και εκτελέστε:
git config --global core.editor ''path to choice text editor' -n -w'
Git Fork εναντίον Git Clone
Το πιρούνι και η κλωνοποίηση είναι δύο διαφορετικοί όροι στο Git. Δεν μπορείτε να μαζέψετε το αποθετήριο σας καθώς είναι ήδη μαζί σας. Μπορείτε, ωστόσο, να μαζέψετε το αποθετήριο άλλων ανθρώπων και να το κλωνοποιήσετε μετά.
Η παραλαβή ενός αποθετηρίου σημαίνει ότι αρπάζετε ένα αντίγραφο του αποθετηρίου κάποιου και το κάνετε δικό σας. Μόλις λάβετε ένα αντίγραφο αυτού του αποθετηρίου, μπορείτε στη συνέχεια να το κλωνοποιήσετε όπως θα κάνατε σε οποιοδήποτε από τα αποθετήρια git σας για τοπικές αλλαγές.
Εδώ είναι πώς να κλωνοποίηση απομακρυσμένου αποθετηρίου στο GitHub και ξεκινήστε μια λήψη στον τοπικό σας κατάλογο:
git clone https://github.com/username/repository_name.git/
Επαναφορά αρχείου στην προεπιλεγμένη του κατάσταση
Εάν θέλετε να διαγράψετε τις αλλαγές σε ένα αρχείο μετά την τελευταία δέσμευση, μπορείτε να χρησιμοποιήσετε το git restore εντολή:
git restore filename
Τροποποίηση μιας δέσμευσης
Μπορείτε να επιστρέψετε σε προηγούμενη δέσμευση εάν ξεχάσετε να κάνετε αλλαγές σε ορισμένα αρχεία κατά τη σταδιοποίηση τους.
Κάντε αλλαγές στο αρχείο που ξεχάσατε. Στη συνέχεια χρησιμοποιήστε git τροποποιήσω για επανεξέταση δέσμευσης:
git add file_forgotten
git commit --amend
Unstage Files
Μπορείτε να καταργήσετε συγκεκριμένα αρχεία που έχετε οργανώσει για χρήση μέσω δέσμευσης πήγαινε rm εντολή:
git rm --cached filename
Μπορείτε επίσης να αφαιρέσετε πολλά αρχεία ταυτόχρονα:
git rm --cached file1 file2 file3 file4
Θυμηθείτε να προσθέσετε τη σχετική επέκταση αρχείου σε οποιοδήποτε αρχείο εξαιρείτε. Για παράδειγμα, ένα απλό αρχείο κειμένου πρέπει να είναι όνομα αρχείου.txt Το
Σχετίζεται με: Πώς να καθαρίσετε το Git και να αφαιρέσετε αρχεία που δεν έχουν εντοπιστεί
Επαναφορά Git
Χρησιμοποιώντας επαναφορά git είναι χρήσιμο εάν θέλετε να απορρίψετε όλα τα αρχεία που έχετε τοποθετήσει για μια δέσμευση ταυτόχρονα:
git reset
Το Git reset HEAD, ωστόσο, δείχνει το HEAD ενός κλάδου σε μια συγκεκριμένη δέσμευση στο δέντρο εργασίας σας. Για παράδειγμα, εάν δεν έχετε προωθήσει ακόμη την τρέχουσα δέσμευσή σας, μπορείτε να επιστρέψετε στην πρόσφατη ώθηση δέσμευσης:
git reset --soft HEAD~1
Αντικαθιστώ --μαλακός με --σκληρός αν έχετε προωθήσει ήδη την τρέχουσα δέσμευση:
git reset --hard HEAD~1
Πηγαίνετε Επαναφορά
σε αντίθεση με το επαναφορά εντολή, πήγαινε πίσω διατηρεί την ακεραιότητα του ιστορικού δεσμεύσεών σας. Είναι βολικό αν θέλετε να τροποποιήσετε μια δέσμευση λόγω σφαλμάτων ή σφαλμάτων.
Δεν εγκαταλείπει τη δέσμευση -στόχο ή κάνει νέα. Αντ 'αυτού, επιστρέφει στις πρόσφατες αλλαγές που κάνετε χωρίς να διαγράψετε ή να μετονομάσετε μια τέτοια δέσμευση. Είναι ένας πολύ καλός τρόπος για να διατηρείτε τις δεσμεύσεις σας πιο καθαρές, συν το ότι είναι ασφαλέστερο από την επαναφορά συνεχώς.
Για να επιστρέψετε σε δέσμευση:
git revert HEAD~1
Οπου ΚΕΦΑΛΙ 1 δείχνει μια συγκεκριμένη δέσμευση στο δέντρο εργασίας σας.
Διαγράψτε ένα αρχείο παρακολούθησης ή έναν κατάλογο
Μπορείς να χρησιμοποιήσεις git rm -f για να διαγράψετε τυχόν αρχεία παρακολούθησης στο δέντρο εργασίας σας. Σημειώστε, ωστόσο, ότι το Git δεν μπορεί να αφαιρέσει μη παρακολουθούμενα αρχεία, καθώς δεν τα αποθηκεύει στην προσωρινή μνήμη.
Για να διαγράψετε ένα σταδιακό αρχείο:
git rm -f filename
Για να καταργήσετε έναν σταδιακό φάκελο:
git rm -r -f foldername
Git Logging
Για να δείτε τα αρχεία καταγραφής δεσμεύσεων και το ιστορικό σας στο Git:
git log
Για να καταγράψετε τις δραστηριότητες σε έναν συγκεκριμένο κλάδο:
git log branch_name
Σχετίζεται με: Πώς να επιθεωρήσετε το ιστορικό ενός έργου με git log
Μερικές φορές μπορεί να θέλετε να επιστρέψετε σε μια εγκαταλελειμμένη δέσμευση. Για να δείτε λοιπόν εγκαταλειμμένες δεσμεύσεις, συμπεριλαμβανομένων των σχετικών:
git reflog
Για να δείτε τα αρχεία καταγραφής ref για έναν συγκεκριμένο κλάδο:
git reflog branch_name
Διαχειριστείτε τις εκδόσεις του έργου σας σαν επαγγελματίας με το Git
Με το Git να προσφέρει πολλά πλεονεκτήματα, μπορείτε να διαχειριστείτε τις εκδόσεις του έργου σας εξ αποστάσεως χωρίς διαρρήξεις αρχείων και φακέλων εντός του χώρου σας στον κύριο κλάδο σας. Επιπλέον, σας επιτρέπει να εκτελείτε έργα εύκολα με μια ομάδα.
Όπως έχετε δει, το Git έχει πολλές δυνατότητες που μπορείτε να εξερευνήσετε. Αλλά προσέξτε να χρησιμοποιείτε αυτές τις δυνατότητες σκόπιμα. Διαφορετικά, μπορεί να καταλήξετε να σπάσετε πράγματα. Τούτου λεχθέντος, μπορείτε ακόμα να περιστρέψετε ένα απομακρυσμένο αποθετήριο αποδείξεων και να παίξετε με αυτές τις δυνατότητες.
Μερίδιο Μερίδιο Τιτίβισμα ΗΛΕΚΤΡΟΝΙΚΗ ΔΙΕΥΘΥΝΣΗ Διαχειριστείτε την έκδοση αρχείων σας σαν προγραμματιστής με GitΟι προγραμματιστές δημιούργησαν συστήματα ελέγχου έκδοσης (VCS) για την επίλυση προβλημάτων ελέγχου έκδοσης αρχείου. Ας δούμε τα βασικά στοιχεία ελέγχου έκδοσης χρησιμοποιώντας το κορυφαίο σύστημα σήμερα, Git.
Διαβάστε Επόμενο Σχετικά θέματα- Προγραμματισμός
- Ανάπτυξη διαδικτύου
- GitHub
- Φροντιστήρια κωδικοποίησης
Η Idowu είναι παθιασμένη με οτιδήποτε έξυπνη τεχνολογία και παραγωγικότητα. Στον ελεύθερο χρόνο του, παίζει με κωδικοποίηση και μεταβαίνει στη σκακιέρα όταν βαριέται, αλλά του αρέσει επίσης να ξεφεύγει από τη ρουτίνα κάθε τόσο. Το πάθος του για να δείξει στους ανθρώπους τον δρόμο γύρω από τη σύγχρονη τεχνολογία τον παρακινεί να γράψει περισσότερα.
Περισσότερα από το Idowu OmisolaΕγγραφείτε στο newsletter μας
Εγγραφείτε στο ενημερωτικό μας δελτίο για τεχνικές συμβουλές, κριτικές, δωρεάν ebooks και αποκλειστικές προσφορές!
Κάντε κλικ εδώ για εγγραφή