Προηγμένο σεμινάριο Git

Προηγμένο σεμινάριο Git

Η ανάπτυξη του έργου σας μέσω απομακρυσμένου αποθετηρίου σας επιτρέπει να διαχειρίζεστε με ευελιξία κάθε κομμάτι του. Διορθώσεις σφαλμάτων, ενημερώσεις χαρακτηριστικών, διαγραφή αρχείων, ομαδική εργασία, συνεισφορές ανοιχτού κώδικα, ανάπτυξη κώδικα και πολλά άλλα είναι τώρα στη διάθεσή σας με ισχυρή γνώση του 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
  • Φροντιστήρια κωδικοποίησης
Σχετικά με τον Συγγραφέα Ηδίσου Ομισόλα(Δημοσιεύθηκαν 94 άρθρα)

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

Περισσότερα από το Idowu Omisola

Εγγραφείτε στο newsletter μας

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

Κάντε κλικ εδώ για εγγραφή