top 40 git interview questions
Οι πιο δημοφιλείς ερωτήσεις συνέντευξης GIT με απαντήσεις και παραδείγματα:
Αυτό το ενημερωτικό σεμινάριο περιλαμβάνει ένα σύνολο από τις πιο πιθανές ερωτήσεις στις συνεντεύξεις του Git μαζί με τις περιγραφικές απαντήσεις τους. Αυτές οι ερωτήσεις σίγουρα θα σας βοηθήσουν να προετοιμαστείτε και να σπάσετε οποιαδήποτε συνέντευξη Git με επιτυχία.
Είτε είστε αρχάριος είτε έμπειρος επαγγελματίας, αυτές οι ερωτήσεις συνέντευξης στο Git και οι λεπτομερείς απαντήσεις σίγουρα θα σας βοηθήσουν να εμπλουτίσετε τις γνώσεις σας για το θέμα και να υπερέχετε στη δουλειά σας, καθώς και σε συνεντεύξεις.
Ας αρχίσουμε!!
Οι πιο συχνές ερωτήσεις συνέντευξης GIT
Παρακάτω αναφέρονται μερικές από τις συνήθεις ερωτήσεις συνέντευξης GIT για αναφορά σας.
Q # 1) Τι είναι το Git;
Απάντηση: Το Git είναι ένα εργαλείο ελέγχου κατανεμημένης έκδοσης. Είναι συμβατό με κατανεμημένες μη γραμμικές ροές εργασίας καθώς προσφέρει διασφάλιση δεδομένων για την κατασκευή λογισμικού καλής ποιότητας.
Το Git είναι δωρεάν και ανοιχτού κώδικα. Μπορεί να χρησιμοποιηθεί για σχεδόν οποιοδήποτε είδος έργου, είτε μικρού είτε μεγάλου μεγέθους. Το Git είναι γνωστό για τη μεγάλη ταχύτητα και αποτελεσματικότητά του. Τα αποθετήρια Git είναι πολύ εύκολο να βρεθούν και να έχουν πρόσβαση. Λόγω των συγκεκριμένων χαρακτηριστικών του, το Git είναι εξαιρετικά ευέλικτο, ασφαλές και συμβατό με το σύστημά σας.
Q # 2) Τι είναι ένα κατανεμημένο σύστημα ελέγχου έκδοσης;
Απάντηση: Ένα κατανεμημένο VCS είναι ένα σύστημα που δεν εξαρτάται από έναν κεντρικό διακομιστή για τη διατήρηση ενός αρχείου έργου και όλων των εκδόσεών του. Στο κατανεμημένο VCS, κάθε συνεργάτης ή προγραμματιστής λαμβάνει ένα τοπικό αντίγραφο του κύριου αποθετηρίου και αυτό ονομάζεται κλώνος.
(εικόνα πηγή )
Όπως μπορείτε να δείτε στο παραπάνω διάγραμμα, κάθε συνεργάτης διατηρεί ένα τοπικό αποθετήριο στα τοπικά του μηχανήματα. Μπορούν να δεσμεύσουν και να ενημερώσουν τα τοπικά αποθετήρια χωρίς προβλήματα.
Χρησιμοποιώντας μια λειτουργία έλξης, ένας προγραμματιστής μπορεί να ενημερώσει το τοπικό αποθετήριό του με τις πιο πρόσφατες αλλαγές από τον κεντρικό διακομιστή. Χρησιμοποιώντας τη λειτουργία push, μπορούν να στείλουν τις αλλαγές τους από το τοπικό αποθετήριο στον κεντρικό διακομιστή.
Q # 3) Ποιος δημιούργησε το Git;
Απάντηση: Το Git δημιουργήθηκε από τον Linus Torvalds το 2005 στο δρόμο για την ανάπτυξη του Linux Kernel.
Q # 4) Ποια γλώσσα χρησιμοποιείται στο Git;
Απάντηση: C είναι η υποκείμενη γλώσσα προγραμματισμού στην οποία γράφεται το Git. Η γλώσσα C κάνει το Git γρήγορο, αποφεύγοντας τα γενικά έξοδα εκτέλεσης που συνδέονται με άλλες γλώσσες προγραμματισμού υψηλού επιπέδου.
Q # 5) Ποια είναι τα πλεονεκτήματα / κύρια χαρακτηριστικά του Git;
Απάντηση: Παρατίθενται παρακάτω τα διάφορα στ χαρακτηριστικά του Git.
(i) Δωρεάν και ανοιχτή πηγή:
Το Git εκδίδεται με άδεια ανοικτού κώδικα GPL (General Public License). Δεν χρειάζεται να πληρώσετε τίποτα για να χρησιμοποιήσετε το Git.
Είναι απολύτως δωρεάν. Καθώς είναι ανοιχτού κώδικα, μπορείτε να τροποποιήσετε τον πηγαίο κώδικα σύμφωνα με τις ανάγκες σας.
(ii) Ταχύτητα:
Δεδομένου ότι δεν απαιτείται να συνδεθείτε σε κανένα δίκτυο για την εκτέλεση όλων των ενεργειών, εκτελεί όλες τις εργασίες γρήγορα. Η απόκτηση ιστορικού εκδόσεων από ένα τοπικά αποθηκευμένο αποθετήριο μπορεί να είναι εκατό φορές πιο γρήγορη από τη λήψη από τον απομακρυσμένο διακομιστή.
Το Git είναι γραμμένο στο C, που είναι η υποκείμενη γλώσσα προγραμματισμού που αποφεύγει τα γενικά έξοδα εκτέλεσης που συνδέονται με άλλες γλώσσες υψηλού επιπέδου.
(iii) Επεκτάσιμη:
Το Git είναι εξαιρετικά επεκτάσιμο. Έτσι, εάν ο αριθμός των συνεργατών αυξηθεί την επόμενη ώρα, τότε το Git μπορεί εύκολα να δεχτεί αυτήν την αλλαγή.
Παρά το γεγονός ότι το Git αντιπροσωπεύει ένα ολόκληρο αποθετήριο, τα δεδομένα που διατηρούνται από την πλευρά του πελάτη είναι πολύ μικρά καθώς το Git συμπιέζει ολόκληρα τα τεράστια δεδομένα μέσω μιας τεχνικής συμπίεσης χωρίς απώλειες.
(iv) Αξιόπιστο:
Καθώς κάθε συνεργάτης έχει το δικό του τοπικό αποθετήριο, στις περιπτώσεις σφάλματος του συστήματος, τα χαμένα δεδομένα μπορούν να ανακτηθούν από οποιοδήποτε από τα τοπικά αποθετήρια. Ανά πάσα στιγμή, θα έχετε ένα αντίγραφο ασφαλείας όλων των αρχείων σας.
(v) Ασφαλές:
Το Git χρησιμοποιεί το SHA1 (Secure Hash Function) για να ονομάσει και να εντοπίσει αντικείμενα μέσα στο αποθετήριο του. Κάθε τεχνούργημα και δέσμευση συνοψίζονται και ανακτώνται μέσω του αθροίσματος ελέγχου κατά την ολοκλήρωση της αγοράς.
Το ιστορικό Git αποθηκεύεται με έναν τρόπο με τον οποίο το αναγνωριστικό μιας συγκεκριμένης έκδοσης (μια δέσμευση σε όρους Git) βασίζεται στο συνολικό ιστορικό ανάπτυξης που εκτελείται σε αυτήν την δέσμευση. Μόλις προωθηθεί μια έκδοση αρχείου στο Git, τότε δεν υπάρχει τρόπος να το αλλάξετε χωρίς να το παρατηρήσετε.
(vi) Οικονομικό:
Στην περίπτωση ενός κεντρικού συστήματος ελέγχου έκδοσης, ο κεντρικός διακομιστής πρέπει να είναι αρκετά ισχυρός για να ανταποκρίνεται σε αιτήματα ολόκληρης της ομάδας. Αυτό δεν είναι πρόβλημα για τις μικρότερες ομάδες, ωστόσο καθώς η ομάδα επεκτείνεται, οι περιορισμοί υλικού του διακομιστή μπορούν να αποτελέσουν εμπόδιο για την απόδοση.
Στην περίπτωση συστημάτων ελέγχου κατανεμημένων εκδόσεων όπως το Git, τα μέλη της ομάδας δεν απαιτούν αλληλεπίδραση με τον διακομιστή αναμένουν πότε πρέπει να προωθήσουν ή να τραβήξουν αλλαγές. Όλη η βαριά ανύψωση συμβαίνει στο τέλος του πελάτη, επομένως το υλικό του διακομιστή μπορεί να διατηρηθεί αρκετά απλό.
(vii) Υποστηρίζει μη γραμμική ανάπτυξη:
Το Git παρέχει ταχεία διακλάδωση και συγχώνευση και περιέχει συγκεκριμένα εργαλεία για την ορατότητα και τη διέλευση ενός μη γραμμικού ιστορικού ανάπτυξης. Μια βασική ιδέα στο Git είναι ότι μια αλλαγή θα συγχωνεύεται πιο συχνά από ό, τι γράφεται καθώς αποστέλλεται σε διαφορετικούς κριτικούς.
Οι κλάδοι Git είναι εξαιρετικά ελαφροί. Ένας κλάδος στο Git αναφέρεται μόνο σε μία μόνο δέσμευση. Η πλήρης δομή του κλάδου μπορεί να δημιουργηθεί, με τη βοήθεια των γονικών δεσμεύσεων.
(viii) Εύκολη διακλάδωση:
Η διαχείριση καταστημάτων μέσω του Git είναι πολύ απλή και εύκολη. Απαιτεί μερικά jiffies για τη δημιουργία, τη διαγραφή και τη συγχώνευση κλάδων. Οι κλάδοι χαρακτηριστικών δίνουν ένα μονωμένο περιβάλλον σε κάθε αλλαγή στη βάση κωδικών σας.
Όταν ένας προγραμματιστής απαιτεί να αρχίσει να εργάζεται σε κάτι, ανεξάρτητα από το μέγεθος της εργασίας, δημιουργεί έναν νέο κλάδο. Αυτό διασφαλίζει ότι ο κύριος κλάδος διατηρεί συνεχώς έναν κωδικό ποιότητας παραγωγής.
(ix) Κατανεμημένη ανάπτυξη:
Το Git παρέχει σε κάθε προγραμματιστή ένα τοπικό αντίγραφο ολόκληρου του ιστορικού ανάπτυξης, καθώς και οι αλλαγές κλωνοποιούνται από ένα τέτοιο αποθετήριο σε άλλο. Αυτές οι αλλαγές εισάγονται ως πρόσθετοι κλάδοι ανάπτυξης και μπορούν να συγχωνευθούν με τον ίδιο τρόπο όπως ένας τοπικά αναπτυγμένος κλάδος.
(x) Συμβατότητα με τα ισχύοντα συστήματα ή πρωτόκολλα:
Τα αποθετήρια μπορούν να δημοσιευτούν μέσω HTTP, FTP ή ενός πρωτοκόλλου Git πάνω από ένα απλό socket ή ssh.
Q # 6) Πώς δημιουργείτε ένα αποθετήριο στο Git;
Απάντηση: Για να δημιουργήσετε ένα αποθετήριο, πρέπει να δημιουργήσετε έναν κατάλογο για το έργο εάν δεν υπάρχει ήδη και, στη συνέχεια, απλά να εκτελέσετε την εντολή ' git init '. Εκτελώντας αυτήν την εντολή, ένας κατάλογος .git θα δημιουργηθεί μέσα στον κατάλογο έργου, δηλαδή τώρα ο κατάλογος έργου σας έχει μετατραπεί σε αποθετήριο Git.
Q # 7) Τι είναι ο κατάλογος .git;
Απάντηση: Τη στιγμή που δημιουργείτε ένα αποθετήριο, θα βρείτε έναν κατάλογο .git που υπάρχει μέσα σε αυτό. Αυτός ο κατάλογος .git περιέχει όλα τα μεταδεδομένα του αποθετηρίου και διατηρεί ένα κομμάτι όλων των αλλαγών που έγιναν στα αρχεία στο αποθετήριο σας, διατηρώντας ένα ιστορικό δεσμεύσεων.
Όλες οι πληροφορίες σχετικά με δεσμεύσεις, αγκίστρια, αναφορές, βάσεις δεδομένων αντικειμένων, απομακρυσμένες διευθύνσεις αποθετηρίου κ.λπ. φυλάσσονται μέσα σε αυτόν το φάκελο. Αυτό είναι το πιο κρίσιμο μέρος του Git. Όταν κλωνοποιείτε οποιοδήποτε αποθετήριο Git στον τοπικό υπολογιστή σας, αυτό το .git είναι ο κατάλογος που πραγματικά αντιγράφεται.
Ε # 8) Τι θα συμβεί εάν διαγραφεί ο κατάλογος .git;
Απάντηση: Εάν ο κατάλογος .git / διαγραφεί, τότε θα χάσετε το ιστορικό του έργου σας. Το αποθετήριο δεν θα είναι πλέον υπό έλεγχο έκδοσης.
Q # 9) Ποια εντολή χρησιμοποιείται για τη σύνταξη ενός μηνύματος Commit στο Git;
Απάντηση: Η εντολή που χρησιμοποιείται για τη μετάδοση ενός μηνύματος σε μια εντολή git είναι git commit -m 'μήνυμα μήνυμα'. Η σημαία Μ χρησιμοποιείται για τη μετάδοση ενός μηνύματος δέσμευσης.
Q # 10) Τι είναι το γυμνό αποθετήριο Git; Πώς διαφέρει από ένα τυπικό / μη γυμνό αποθετήριο Git;
Απάντηση: Αποθήκες που δημιουργούνται μέσω git init Η εντολή είναι τα τυπικά / μη γυμνά αποθετήρια Git.
Στο φάκελο ανώτερου επιπέδου αυτού του αποθετηρίου, θα βρείτε δύο πράγματα:
- Ένας υποκατάλογος .git διατηρώντας όλα τα μεταδεδομένα και παρακολουθείτε το ιστορικό του repo σας.
- Ένα δέντρο εργασίας.
Τα αποθετήρια που δημιουργούνται χρησιμοποιώντας git init - γυμνό Η εντολή είναι γνωστή ως γυμνά αποθετήρια Git. Χρησιμοποιούνται κυρίως για κοινή χρήση. Δεν περιέχουν κανένα δέντρο εργασίας. Κρατούν το ιστορικό αναθεώρησης git του αποθετηρίου σας στον ριζικό φάκελο αντί να το έχουν μέσα στον υποφακέλο .git.
Περιέχει απλά γυμνά δεδομένα αποθετηρίου. Έτσι διαφέρει ένα γυμνό αποθετήριο Git από ένα τυπικό αποθετήριο Git. Επίσης, ένα γυμνό αποθετήριο δεν έχει προεπιλεγμένο τηλεχειριστήριο προέλευση αποθετήριο καθώς χρησιμεύει ως αποθετήριο προέλευσης για πολλούς απομακρυσμένους χρήστες.
Δεδομένου ότι ένα γυμνό αποθετήριο δεν περιέχει χώρο εργασίας, το σκατά και τράβηγμα Οι εντολές δεν λειτουργούν σε ένα γυμνό repo. Δεν απαιτείται να κάνετε αλλαγές σε ένα γυμνό repo.
Ε # 11) Αναφέρετε μερικές υπηρεσίες φιλοξενίας Git Repository.
Απάντηση:
- Github
- Pikacode
- Gitlab
- Microsoft VSTS
- BitBucket
- GitEnterprise
- SourceForge
- Εκκίνηση του Pad
- Αναγκαστικά
- Beanstalk
- Μοιάζει
Q # 12) Ονομάστε μερικές βασικές λειτουργίες στο Git.
Απάντηση: Μερικές βασικές λειτουργίες στο Git περιλαμβάνουν:
- Αρχικοποίηση
- Προσθήκη
- Διαπράττω
- Σπρώξτε
- Τραβήξτε
Ε # 13) Ονομάστε μερικές προηγμένες λειτουργίες στο Git.
Απάντηση: Ορισμένες προηγμένες λειτουργίες στο Git είναι:
- Διακλάδωση
- Συγχώνευση
- Αναζωογόνηση
Ε # 14) Πώς θα διακρίνετε το Git και το SVN;
Απάντηση: Το Git είναι ένας κατανεμημένος έλεγχος έκδοσης, ενώ το SVN είναι συγκεντρωτικό. Αυτό οδηγεί σε πολλές διαφορές μεταξύ των δύο όσον αφορά τα χαρακτηριστικά και τις λειτουργίες τους.
Πηγαίνω | SVN | |
---|---|---|
Περιεχόμενο | Κρυπτογραφικό SHA-1 Hash. | Χωρίς κατακερματισμένο περιεχόμενο. |
Αρχιτεκτονική διακομιστή | Ο υπολογιστής στον οποίο έχει εγκατασταθεί το Git λειτουργεί τόσο ως πελάτης όσο και ως διακομιστής. Κάθε προγραμματιστής έχει ένα τοπικό αντίγραφο του πλήρους ιστορικού έκδοσης του έργου σε μεμονωμένους υπολογιστές του. Οι αλλαγές Git συμβαίνουν τοπικά. Ως εκ τούτου, ο προγραμματιστής δεν απαιτείται να είναι συνδεδεμένος στο δίκτυο ανά πάσα στιγμή. Μόνο για λειτουργίες push και pull, οι προγραμματιστές θα χρειαστούν σύνδεση στο διαδίκτυο για να συνδεθούν σε απομακρυσμένο διακομιστή. | Το SVN έχει ξεχωριστό πελάτη και διακομιστή. Δεν διατίθεται τοπικά. Θα πρέπει να είστε συνδεδεμένοι στο δίκτυο για να εκτελέσετε οποιαδήποτε ενέργεια. Επίσης, στο SVN, δεδομένου ότι όλα είναι συγκεντρωτικά, οπότε σε περίπτωση που ο κεντρικός διακομιστής καταρρεύσει ή καταστραφεί, θα έχει ως αποτέλεσμα την απώλεια ολόκληρων δεδομένων για το έργο. |
Διακλάδωση | Το Git προτιμάται κυρίως από προγραμματιστές λόγω του αποτελεσματικού μοντέλου διακλάδωσης. Τα κλαδιά Git είναι ελαφριά αλλά ισχυρά. Είναι μόνο αναφορές σε μια συγκεκριμένη δέσμευση. Μπορείτε να δημιουργήσετε, να διαγράψετε ή να τροποποιήσετε ένα υποκατάστημα ανά πάσα στιγμή χωρίς να επηρεάσετε άλλες δεσμεύσεις. Έτσι, το πιρούνι, το υποκατάστημα και η συγχώνευση είναι εύκολο με το Git. | Το SVN έχει ένα περίπλοκο μοντέλο διακλάδωσης και συγχώνευσης και είναι χρονοβόρο για τη διαχείριση. Στο SVN, οι κλάδοι δημιουργούνται ως κατάλογοι στο αποθετήριο. Αυτή η δομή καταλόγου είναι κυρίως προβληματική. Όταν το κλαδί είναι έτοιμο, πρέπει να επιστρέψετε στον κορμό. Δεδομένου ότι δεν είστε ο μόνος που συγχωνεύει τις αλλαγές, επομένως η έκδοση του φορτηγού ενδέχεται να μην θεωρείται κλάδος προγραμματιστών. Αυτό μπορεί να οδηγήσει σε διενέξεις, αρχεία που λείπουν και αλλοιωμένες αλλαγές στον κλάδο σας. |
Έλεγχος πρόσβασης | Το Git υποθέτει ότι όλοι οι συνεισφέροντες θα έχουν τα ίδια δικαιώματα. | Το SVN σάς επιτρέπει να ορίσετε ελέγχους πρόσβασης ανάγνωσης / εγγραφής σε κάθε επίπεδο και κατάλογο. |
Ελεξιμότητα | Στο Git, οι αλλαγές παρακολουθούνται σε επίπεδο αποθετηρίου. Το Git δεν ασχολείται πάρα πολύ με τη διατήρηση του ακριβούς ιστορικού των αλλαγών που έγιναν στο αποθετήριο σας. Η κατανεμημένη φύση του Git επιτρέπει σε οποιονδήποτε συνεργάτη να αλλάξει οποιοδήποτε μέρος της ιστορίας του τοπικού ρεπόρτερ του. Με το Git, είναι δύσκολο να καταλάβετε ένα πραγματικό ιστορικό αλλαγών στη βάση κώδικα σας. Για παράδειγμα, θα χάσετε το ιστορικό μετά τη μετονομασία στο Git. | Στο SVN, οι αλλαγές παρακολουθούνται σε επίπεδο αρχείου. Το SVN διατηρεί ένα αρκετά συνεπές και ακριβές ιστορικό αλλαγών. Μπορείτε να ανακτήσετε ακριβώς τα ίδια δεδομένα με οποιαδήποτε στιγμή στο παρελθόν. Το ιστορικό SVN είναι μόνιμο και πάντα καθορισμένο. |
Απαιτήσεις αποθήκευσης | Το Git και το SVN αποθηκεύουν τα δεδομένα με τον ίδιο τρόπο. Η χρήση χώρου στο δίσκο είναι ίση και για τα δύο. Η μόνη διαφορά εμφανίζεται στην εικόνα σε περίπτωση δυαδικών αρχείων. Το Git δεν είναι φιλικό προς τα δυαδικά αρχεία. Δεν μπορεί να χειριστεί την αποθήκευση μεγάλων δυαδικών αρχείων. | Το SVN έχει έναν αλγόριθμο συμπίεσης xDelta που λειτουργεί τόσο για αρχεία δυαδικών όσο και για αρχεία κειμένου. Έτσι, το SVN μπορεί να χειριστεί την αποθήκευση μεγάλων δυαδικών αρχείων σε συγκριτικά μικρότερο χώρο από το Git. |
Ευχρηστία | Τόσο το Git όσο και το SVN χρησιμοποιούν τη γραμμή εντολών ως κύριο UI. Το Git χρησιμοποιείται σε μεγάλο βαθμό από προγραμματιστές / τεχνικούς χρήστες. | Το SVN χρησιμοποιείται σε μεγάλο βαθμό από μη τεχνικούς χρήστες, καθώς είναι πιο εύκολο να το μάθεις. |
Παγκόσμιος αριθμός αναθεώρησης | Μη διαθέσιμος | Διαθέσιμος |
Ε # 15) Πώς θα διαφοροποιήσετε το Git και το GitHub;
Απάντηση: Το Git είναι ένα σύστημα ελέγχου εκδόσεων υψηλής ποιότητας. Διανέμεται στη φύση και χρησιμοποιείται για την παρακολούθηση αλλαγών στον πηγαίο κώδικα σε όλη την ανάπτυξη λογισμικού. Έχει ένα μοναδικό μοντέλο διακλάδωσης που βοηθά στο συγχρονισμό της εργασίας μεταξύ προγραμματιστών και στην παρακολούθηση αλλαγών σε οποιοδήποτε αρχείο.
Οι πρωταρχικοί στόχοι του Git είναι η ταχύτητα, η ακεραιότητα των δεδομένων, η παροχή υποστήριξης σε κατανεμημένες, μη γραμμικές ροές εργασίας. Το Git εγκαθίσταται και συντηρείται στον τοπικό υπολογιστή, αντί για το σύννεφο.
Το GitHub είναι μια υπηρεσία φιλοξενίας αποθετηρίου Git που βασίζεται σε σύννεφο και συγκεντρώνει ομάδες. Σας δίνει ένα διαδικτυακό GUI καθώς επίσης παρέχει έλεγχο πρόσβασης και πολλές δυνατότητες συνεργασίας, βασικά εργαλεία διαχείρισης εργασιών για κάθε έργο.
Επίσης, το GitHub είναι ανοιχτού κώδικα, δηλαδή ο κώδικας διατηρείται σε κεντρικό διακομιστή και μπορεί να έχει πρόσβαση σε όλους.
Q # 16) Τι είναι μια διένεξη στο Git και πώς να το επιλύσουμε;
youtube σε mp3 περισσότερο από 30 λεπτά
Απάντηση: Το Git διαθέτει μια αυτόματη δυνατότητα συγχώνευσης που χειρίζεται τη συγχώνευση που δεσμεύεται από μόνη της, υπό την προϋπόθεση ότι έχουν πραγματοποιηθεί αλλαγές κώδικα σε διαφορετικές γραμμές και σε διαφορετικά αρχεία.
Αλλά, σε περίπτωση ανταγωνισμού για δεσμεύσεις όπου υπάρχουν αλλαγές στις ίδιες γραμμές κώδικα ενός αρχείου ή ένα αρχείο έχει διαγραφεί σε έναν κλάδο, αλλά υπάρχει και τροποποιείται σε ένα άλλο, το Git δεν είναι σε θέση να επιλύσει αυτόματα τις διαφορές και, συνεπώς, να προκαλέσει συγχώνευση.
Σε τέτοιες περιπτώσεις, απαιτείται η βοήθειά σας για να αποφασίσετε ποιος κωδικός θα συμπεριληφθεί και ποιος κωδικός θα απορριφθεί στην τελική συγχώνευση.
Μια διένεξη συγχώνευσης μπορεί να προκύψει κατά τη συγχώνευση ενός υποκαταστήματος, την αναδιάταξη ενός υποκαταστήματος ή την επιλογή ενός κερασιού. Μόλις εντοπιστεί μια διένεξη, το Git επισημαίνει την περιοχή σε διένεξη και σας ζητά να το επιλύσετε. Μόλις επιλυθεί η διένεξη, μπορείτε να προχωρήσετε στη συγχώνευση.
Ακολουθήστε τα παρακάτω βήματα για να επιλύσετε μια ανταγωνιστική σύγκρουση συγχώνευσης αλλαγής γραμμής:
- Ανοίξτε το Git Bash (γραμμή εντολών Git).
- Χρήση CD εντολή για να μεταβείτε στο τοπικό αποθετήριο Git που έχει τη διένεξη συγχώνευσης.
- Χρησιμοποιήστε το κατάσταση git εντολή για την παραγωγή της λίστας των αρχείων που επηρεάζονται από τη διένεξη συγχώνευσης.
- Ανοίξτε το πρόγραμμα επεξεργασίας κειμένου που χρησιμοποιείτε και διασχίστε το αρχείο με συγχώνευση.
- Για να δείτε την αρχή της διένεξης συγχώνευσης στο αρχείο σας, αναζητήστε το έγγραφο για τη σήμανση διένεξης<<<<<<<. At the point when you open the file, you’ll observe the modifications from the HEAD or base branch after the line <<<<<<>>>>>> ΟΝΟΜΑ ΚΛΑΔΟΥ.
- Επιλέξτε σε περίπτωση που πρέπει να διατηρήσετε μόνο τις αλλαγές του κλάδου σας, απλώς διατηρήστε τις αλλαγές του άλλου κλάδου ή κάντε μια νέα αλλαγή, που μπορεί να περιλαμβάνει αλλαγές από τα δύο υποκαταστήματα. Διαγράψτε τους δείκτες διένεξης<<<<<<>>>>>> και κάντε τις αλλαγές που χρειάζεστε στην τελική συγχώνευση.
- Χρήση προσθέτει το git. εντολή για να προσθέσετε ή να πραγματοποιήσετε τις αλλαγές σας.
- Τέλος, χρησιμοποιήστε το git commit -m 'μήνυμα' εντολή για να πραγματοποιήσετε τις αλλαγές σας με ένα σχόλιο.
Για να επιλύσετε τη διένεξη συγχώνευσης αρχείων που καταργήθηκε, πρέπει να ακολουθήσετε τα παρακάτω βήματα:
- Ανοίξτε το Git Bash (γραμμή εντολών Git).
- Χρήση CD εντολή για να μεταβείτε στο τοπικό αποθετήριο Git που έχει τη διένεξη συγχώνευσης.
- Χρησιμοποιήστε το κατάσταση git εντολή για την παραγωγή της λίστας των αρχείων που επηρεάζονται από τη διένεξη συγχώνευσης.
- Ανοίξτε το πρόγραμμα επεξεργασίας κειμένου που χρησιμοποιείτε και διασχίστε το αρχείο με συγχώνευση.
- Επιλέξτε αν θέλετε να διατηρήσετε το αφαιρεθέν αρχείο. Μπορείτε να ελέγξετε τις πιο πρόσφατες αλλαγές που έγιναν στο αρχείο που καταργήθηκε στο πρόγραμμα επεξεργασίας κειμένου.
- Χρήση git add εντολή για να προσθέσετε το αφαιρεθέν αρχείο στο αποθετήριο. Ή, Χρήση πηγαίνετε rm εντολή για να αφαιρέσετε το αρχείο από το αποθετήριο σας.
- Τέλος, χρησιμοποιήστε το git commit -m 'μήνυμα' εντολή για να πραγματοποιήσετε τις αλλαγές σας με ένα σχόλιο.
Ε # 17) Πώς θα διορθώσετε μια σπασμένη δέσμευση;
Απάντηση: Για να διορθώσετε μια σπασμένη δέσμευση ή να αλλάξετε την τελευταία δέσμευση, η πιο βολική μέθοδος είναι να χρησιμοποιήσετε την εντολή ' git commit-τροποποίηση » .
Σας επιτρέπει να συνδυάσετε τις σταδιακές αλλαγές με την προηγούμενη δέσμευση ως εναλλακτική λύση για τη δημιουργία μιας εντελώς νέας δέσμευσης. Αυτό αντικαθιστά την πιο πρόσφατη δέσμευση με την τροποποιημένη δέσμευση.
(εικόνα πηγή )
Μέσω αυτής της εντολής, μπορείτε επίσης να επεξεργαστείτε το προηγούμενο μήνυμα δέσμευσης χωρίς να αλλάξετε το στιγμιότυπό του.
Q # 18) Ποια είναι η χρήση του git instaweb;
Απάντηση: Είναι ένα σενάριο μέσω του οποίου μπορείτε να περιηγηθείτε αμέσως στο αποθετήριο Git που λειτουργεί σε ένα πρόγραμμα περιήγησης ιστού.
Αυτό το σενάριο ρυθμίζει το gitweb και έναν διακομιστή ιστού για να περιηγηθείτε στο τοπικό αποθετήριο. Κατευθύνει αυτόματα ένα πρόγραμμα περιήγησης ιστού και εκτελεί έναν διακομιστή ιστού μέσω μιας διεπαφής στο τοπικό αποθετήριό σας.
Q # 19) Τι είναι το git is-tree;
Απάντηση: «Git is-tree» δηλώνει ένα αντικείμενο δέντρου που περιλαμβάνει τη λειτουργία και το όνομα όλων των στοιχείων μαζί με την τιμή SHA-1 του blob ή του δέντρου.
Ε # 20) Υπάρχει τρόπος να επαναφέρετε μια διαπραγμάτευση που έχει ήδη προωθηθεί και δημοσιοποιηθεί;
Απάντηση: Ναι, για να διορθώσετε ή να επαναφέρετε μια κακή δέσμευση, υπάρχουν δύο προσεγγίσεις που μπορούν να χρησιμοποιηθούν με βάση το σενάριο.
Αυτοί είναι:
- Ο πολύ προφανής τρόπος είναι να κάνετε μια νέα δέσμευση όπου αφαιρείτε το κακό αρχείο ή να διορθώσετε τα σφάλματα σε αυτό. Μόλις τελειώσετε, μπορείτε να το στείλετε σε ένα απομακρυσμένο αποθετήριο.
- Μια άλλη προσέγγιση είναι να δημιουργήσετε μια νέα δέσμευση για να αναιρέσετε όλες τις αλλαγές που έγιναν στην προηγούμενη κακή δέσμευση. Αυτό μπορεί να γίνει μέσω εντολής επαναφοράς git - ' επαναφορά git '
Q # 21) Πώς θα κάνετε διάκριση μεταξύ του git pull και του git fetch;
Απάντηση: Τσιτς Η εντολή τραβά όλες τις νέες δεσμεύσεις από έναν συγκεκριμένο κλάδο στο κεντρικό αποθετήριο και καθιστά τον κλάδο-στόχο στον τοπικό χώρο αποθήκευσης ενημερωμένο.
Σκατά στοχεύει επίσης στο ίδιο πράγμα, ωστόσο, η υποκείμενη λειτουργικότητά του είναι λίγο διαφορετική. Όταν κάνετε μια ανάκτηση git, όλες οι νέες δεσμεύσεις από έναν συγκεκριμένο κλάδο θα τραβηχτούν στο κεντρικό αποθετήριό σας και αυτές οι αλλαγές θα αποθηκευτούν σε έναν νέο κλάδο στο τοπικό αποθετήριό σας. Αυτό ονομάζεται υποκατάστημα.
Εάν θέλετε να δείτε αυτές τις αλλαγές στον κλάδο-στόχο σας, τότε πρέπει να εκτελέσετε ένα συγχωνεύστε μετά την ανάκτηση git. Ο κλάδος στόχος θα ενημερωθεί με τις πιο πρόσφατες αλλαγές μόνο μετά τη συγχώνευσή του με τον ανακτημένο κλάδο.
Έτσι, ένα git pull φέρνει το τοπικό υποκατάστημα ενημερωμένο με την απομακρυσμένη του έκδοση, ενώ ένα git fetch δεν αλλάζει άμεσα το δικό σας τοπικό υποκατάστημα ή αντίγραφο εργασίας στο αναφορές / κεφάλια. Το Git fetch μπορεί να χρησιμοποιηθεί για την ενημέρωση των κλάδων απομακρυσμένης παρακολούθησης αναφορές / τηλεχειριστήρια //.
Με απλά λόγια, το git pull είναι ίσο με το git fetch που ακολουθείται από το git merge .
Q # 22) Ποια είναι η χρήση του Staging area ή του Indexing στο Git;
Απάντηση: Από την οπτική γωνία του Git, υπάρχουν τρεις περιοχές όπου μπορούν να διατηρηθούν οι αλλαγές του αρχείου, δηλαδή κατάλογος εργασίας, περιοχή σταδιοποίησης και αποθετήριο.
Αρχικά, πραγματοποιείτε αλλαγές στον κατάλογο εργασίας του έργου σας που είναι αποθηκευμένος στο σύστημα αρχείων του υπολογιστή σας. Όλες οι αλλαγές παραμένουν εδώ μέχρι να τις προσθέσετε σε μια ενδιάμεση περιοχή που ονομάζεται περιοχή σταδιοποίησης.
Μπορείτε να πραγματοποιήσετε τις αλλαγές εκτελώντας την εκτέλεση git add. εντολή. Αυτή η περιοχή στάσης σας δίνει μια προεπισκόπηση της επόμενης δέσμευσής σας και βασικά σας επιτρέπει να ρυθμίσετε τις δεσμεύσεις σας. Μπορείτε να προσθέσετε ή να αφαιρέσετε αλλαγές στην περιοχή στάσης μέχρι να είστε ικανοποιημένοι με την έκδοση που πρόκειται να δεσμεύσετε.
Μόλις επαληθεύσετε τις αλλαγές σας και αποσυνδεθείτε το στάδιο άλλαξε, τότε μπορείτε τελικά να πραγματοποιήσετε τις αλλαγές. Μετά τη δέσμευση, μεταβαίνουν το τοπικό αποθετήριο, δηλαδή στον κατάλογο .git / Object.
Εάν χρησιμοποιείτε το Git GUI, τότε θα δείτε την επιλογή για να πραγματοποιήσετε τις αλλαγές σας. Στο παρακάτω στιγμιότυπο οθόνης, το αρχείο sample.txt βρίσκεται στην περιοχή αλλαγών χωρίς στάδια που σημαίνει ότι βρίσκεται στον κατάλογο εργασίας σας.
Μπορείτε να επιλέξετε ένα αρχείο και να κάνετε κλικ στο «στάδιο άλλαξε», και στη συνέχεια θα μετακινηθεί στην περιοχή σκηνής. Για παράδειγμα , το αρχείο hello.txt υπάρχει στο στάδιο αλλαγής (θα δεσμευτεί) περιοχή. Μπορείτε να επαληθεύσετε τις αλλαγές σας και, στη συνέχεια, να πραγματοποιήσετε μια αποσύνδεση, ακολουθούμενη από μια δέσμευση.
Η σταδιοποίηση αναφέρεται επίσης ως ευρετηρίαση, επειδή το git διατηρεί ένα αρχείο ευρετηρίου για να παρακολουθεί τις αλλαγές του αρχείου σας σε αυτές τις τρεις περιοχές. Τα αρχεία που είναι σταδιακά βρίσκονται επί του παρόντος στο ευρετήριό σας.
Όταν προσθέτετε αλλαγές στην περιοχή σταδιοποίησης, τότε οι πληροφορίες στο ευρετήριο ενημερώνονται. Όταν κάνετε μια δέσμευση, είναι ό, τι είναι πραγματικά στο ευρετήριο που δεσμεύεται και όχι αυτό που βρίσκεται στον κατάλογο εργασίας. Μπορείτε να χρησιμοποιήσετε το κατάσταση git εντολή για να δείτε τι υπάρχει στο ευρετήριο.
Q # 23) Τι είναι το Git Stash;
Απάντηση: Το GIT stash καταγράφει την τρέχουσα κατάσταση του λειτουργικού καταλόγου και ευρετηρίου και το διατηρεί στη στοίβα για μελλοντική χρήση. Επαναφέρει τις μη δεσμευμένες αλλαγές (τόσο σταδιακές όσο και χωρίς στάδια) από τον κατάλογο εργασίας σας και σας επιστρέφει ένα καθαρό δέντρο εργασίας.
Μπορείτε να εργαστείτε σε κάτι άλλο τώρα και όταν επιστρέψετε, μπορείτε να εφαρμόσετε ξανά αυτές τις αλλαγές. Επομένως, εάν θέλετε να μεταβείτε από το ένα περιβάλλον στο άλλο χωρίς να χάσετε τις τρέχουσες αλλαγές σας, τότε μπορείτε να χρησιμοποιήσετε την αποθήκευση.
Είναι χρήσιμο στη γρήγορη εναλλαγή περιβάλλοντος, όπου βρίσκεστε στη μέση μιας αλλαγής κώδικα που δεν θέλετε να δεσμεύσετε ή να αναιρέσετε αυτήν τη στιγμή και έχετε κάτι άλλο να εργαστείτε. Η εντολή που πρέπει να χρησιμοποιήσετε είναι το git stash.
Q # 24) Τι είναι η πτώση του Git Stash;
Απάντηση: Όταν δεν χρειάζεστε πλέον συγκεκριμένη αποθήκευση, μπορείτε να την καταργήσετε εκτελώντας την git stash drop εντολή . Εάν θέλετε να αφαιρέσετε όλα τα stash με μία κίνηση από το αποθετήριο τότε μπορείτε να εκτελέσετε git stash clear εντολή .
Q # 25) Τι ισχύει το Git stash; Πώς διαφέρει από το Git stash pop;
Απάντηση: Και οι δύο εντολές χρησιμοποιούνται για να εφαρμόσετε ξανά τις αποθηκευμένες αλλαγές σας και να αρχίσετε να εργάζεστε από το σημείο που είχατε φύγει.
Σε ισχύουν git stash εντολή, οι αλλαγές θα εφαρμοστούν ξανά στο αντίγραφο εργασίας σας και θα διατηρηθούν επίσης στο αρχείο. Αυτή η εντολή μπορεί να χρησιμοποιηθεί όταν θέλετε να εφαρμόσετε τις ίδιες αποθηκευμένες αλλαγές σε πολλούς κλάδους.
Σε git stash ποπ εντολή, οι αλλαγές καταργούνται από το stash και εφαρμόζονται ξανά στο αντίγραφο εργασίας.
Q # 26) Ποια είναι η χρήση της εντολής git clone;
Απάντηση: ο κλώνος git Η εντολή δημιουργεί ένα αντίγραφο του υπάρχοντος κεντρικού αποθετηρίου Git στον τοπικό υπολογιστή σας.
Q # 27) Πότε χρησιμοποιείται η εντολή git config;
Απάντηση: ο διαμόρφωση git χρησιμοποιείται η εντολή για να ορίσετε επιλογές διαμόρφωσης για την εγκατάσταση του Git.
Για παράδειγμα, μετά τη λήψη του Git, πρέπει να χρησιμοποιήσετε τις εντολές config για να ρυθμίσετε το όνομα χρήστη και να πραγματοποιήσετε τη διεύθυνση email στο Git αντίστοιχα:
$ git config –global user.name “”
$ git config –global user.email “”
Έτσι, κυρίως, πράγματα όπως η συμπεριφορά του αποθετηρίου, οι πληροφορίες χρήστη και οι προτιμήσεις μπορούν να ρυθμιστούν με τη βοήθεια αυτής της εντολής.
Q # 28) Πώς θα αναγνωρίσετε εάν ο κλάδος έχει ήδη συγχωνευθεί σε master;
Απάντηση:
Εκτελώντας τις παρακάτω εντολές, μπορείτε να μάθετε την κατάσταση συγχώνευσης κλάδου:
- git branch - συγχωνευμένος πλοίαρχος: Αυτό θα απαριθμήσει όλους τους κλάδους που έχουν μετονομαστεί σε κύριο.
- git branch - συγχωνεύθηκε: Αυτό θα απαριθμήσει όλους τους κλάδους που έχουν συγχωνευτεί στο HEAD.
- git υποκατάστημα - χωρίς συγχώνευση: Αυτό θα εμφανίσει όλους τους κλάδους που δεν έχουν συγχωνευθεί ακόμη.
Από προεπιλογή, αυτή η εντολή αναφέρει την κατάσταση συγχώνευσης μόνο των τοπικών κλάδων. Αν θέλετε να μάθετε για την τοπική και απομακρυσμένη κατάσταση συγχώνευσης υποκαταστήματος, τότε μπορείτε να χρησιμοποιήσετε -προς την σημαία. Εάν θέλετε να ελέγξετε μόνο για απομακρυσμένα υποκαταστήματα, τότε μπορείτε να το χρησιμοποιήσετε -ρ σημαία.
Q # 29) Τι είναι οι γάντζοι στο Git;
Απάντηση: Τα Git hooks είναι συγκεκριμένα σενάρια που εκτελεί το Git πριν ή μετά από ένα συμβάν όπως δέσμευση, ώθηση, ενημέρωση ή λήψη. Θα βρείτε το φάκελο 'hooks' μέσα στον κατάλογο .git στον τοπικό χώρο αποθήκευσης. Θα βρείτε τα ενσωματωμένα σενάρια εδώ pre-comm, post-commit, pre-push, post push.
Αυτά τα σενάρια εκτελούνται τοπικά πριν ή μετά την εμφάνιση ενός συμβάντος. Μπορείτε επίσης να τροποποιήσετε αυτά τα σενάρια ανάλογα με τις ανάγκες σας και το Git θα εκτελέσει το σενάριο όταν συμβεί αυτό το συγκεκριμένο συμβάν.
Q # 30) Ποια είναι η χρήση του git fork; Πώς διαφέρει το πιρούνι από την κλωνοποίηση;
Απάντηση: Η διακλάδωση ενός έργου σημαίνει τη δημιουργία ενός απομακρυσμένου αντιγράφου από το διακομιστή του αρχικού αποθετηρίου. Μπορείτε να μετονομάσετε αυτό το αντίγραφο και να ξεκινήσετε να κάνετε ένα νέο έργο γύρω από αυτό χωρίς να επηρεάσετε το αρχικό έργο. Το πιρούνι δεν είναι η βασική ιδέα του Git.
Η λειτουργία του πιρουνιού χρησιμοποιείται από τη ροή εργασίας του Git και αυτή η ιδέα υπάρχει περισσότερο για δωρεάν λογισμικό ανοιχτού κώδικα όπως το GitHub. Σε γενικές γραμμές, μόλις παραιτηθείτε από το έργο, σπάνια θα συνεισφέρετε ξανά στο γονικό έργο.
Για παράδειγμα, Το OpenBSD είναι ένα λειτουργικό σύστημα ανοιχτού κώδικα που μοιάζει με Unix και αναπτύχθηκε με τη διαμόρφωση του NetBSD που είναι ένα άλλο λειτουργικό σύστημα ανοιχτού κώδικα που μοιάζει με Unix.
Ωστόσο, στο πιρούνι, υπάρχει άμεση σύνδεση μεταξύ του διχαλωτού αντιγράφου και του αρχικού αποθετηρίου σας. Ανά πάσα στιγμή, μπορείτε να συνεισφέρετε στο αρχικό έργο χρησιμοποιώντας τα αιτήματα έλξης.
Στο διχαλωτό αντίγραφο, όλα τα κύρια δεδομένα, όπως κωδικοί και αρχεία, αντιγράφονται από το αρχικό αποθετήριο, ωστόσο, τα υποκαταστήματα, τα αιτήματα τραβήγματος και άλλες λειτουργίες δεν αντιγράφονται. Το Forking είναι ένας ιδανικός τρόπος για συνεργασία ανοιχτού κώδικα.
Η κλωνοποίηση είναι ουσιαστικά μια έννοια Git. Ένας κλώνος είναι ένα τοπικό αντίγραφο οποιουδήποτε απομακρυσμένου αποθετηρίου. Όταν κλωνοποιούμε ένα αποθετήριο, ολόκληρο το αποθετήριο πηγής μαζί με το ιστορικό και τους κλάδους του αντιγράφονται στον τοπικό υπολογιστή μας.
Σε αντίθεση με το forking, δεν υπάρχει άμεση σύνδεση μεταξύ του κλωνοποιημένου αποθετηρίου και του αρχικού απομακρυσμένου αποθετηρίου. Εάν θέλετε να κάνετε αιτήματα τραβήγματος και να συνεχίσετε πίσω στο αρχικό έργο, τότε θα πρέπει να προστεθείτε ως συνεργάτης στο αρχικό αποθετήριο.
Η κλωνοποίηση είναι επίσης ένας πολύ καλός τρόπος για να δημιουργήσετε ένα αντίγραφο ασφαλείας του αρχικού αποθετηρίου, καθώς το κλωνοποιημένο αντίγραφο έχει επίσης όλο το ιστορικό δεσμεύσεων.
Ε # 31) Πώς θα μάθετε τι έχουν αλλάξει όλα τα αρχεία σε μια συγκεκριμένη δέσμευση Git;
Απάντηση: Χρησιμοποιώντας την τιμή κατακερματισμού της συγκεκριμένης δέσμευσης, μπορείτε να εκτελέσετε την παρακάτω εντολή για να λάβετε τη λίστα των αρχείων που έχουν αλλάξει σε μια συγκεκριμένη δέσμευση:
git diff-tree -r {hash}
Αυτό θα εμφανίσει όλα τα αρχεία που έχουν τροποποιηθεί, καθώς και τα αρχεία που έχουν προστεθεί. Η σημαία -r χρησιμοποιείται για τη λίστα μεμονωμένων αρχείων μαζί με τη διαδρομή τους αντί για την κατάρρευσή τους μόνο στα ονόματα του ριζικού καταλόγου τους.
Μπορείτε επίσης να χρησιμοποιήσετε την παρακάτω εντολή:
git diff-tree –no-commit-id –name-only -r {hash}
- Το no-commit-id θα επανεκπαιδεύσει τους αριθμούς κατακερματισμού που θα έρθουν στην έξοδο. Ενώ, το -name θα εξαιρέσει τις διαδρομές αρχείων και θα δώσει μόνο τα ονόματα των αρχείων στην έξοδο.
Q # 32) Ποια είναι η διαφορά μεταξύ git checkout (όνομα κλάδου) και git checkout -b (όνομα κλάδου);
Απάντηση: Η εντολή git checkout (όνομα υποκαταστήματος) θα αλλάξει από ένα κλάδο σε άλλο.
Η εντολή git checkout -b (όνομα κλάδου) θα δημιουργήσει έναν νέο κλάδο και θα αλλάξει επίσης σε αυτό.
Q # 33) Τι είναι το SubGit;
Απάντηση: Το SubGit είναι ένα εργαλείο που χρησιμοποιείται για το SVN to Git Migration. Αναπτύσσεται από μια εταιρεία που ονομάζεται TMate. Μετατρέπει τα αποθετήρια SVN σε Git και σας επιτρέπει να εργάζεστε ταυτόχρονα και στα δύο συστήματα. Συγχρονίζει αυτόματα το SVN με το Git.
(εικόνα πηγή )
Μπορείτε να δημιουργήσετε έναν καθρέφτη SVN || Git χρησιμοποιώντας αυτό το εργαλείο. Το SubGit πρέπει να εγκατασταθεί στον διακομιστή Git. Θα εντοπίσει όλες τις ρυθμίσεις του απομακρυσμένου χώρου αποθήκευσης SVN, συμπεριλαμβανομένων των αναθεωρήσεων, των κλάδων και των ετικετών SVN και θα τις μετατρέψει σε δεσμεύσεις Git.
Διατηρεί επίσης το ιστορικό, συμπεριλαμβανομένης της παρακολούθησης δεδομένων συγχώνευσης.
Ε # 34) Μπορείτε να ανακτήσετε έναν διαγραμμένο κλάδο στο Git;
Απάντηση: Ναι μπορείς. Για να ανακτήσετε ένα διαγραμμένο κλάδο, θα πρέπει να γνωρίζετε το SHA από την κορυφή του κεφαλιού σας. Το SHA ή hash είναι ένα μοναδικό αναγνωριστικό που δημιουργεί το Git με κάθε λειτουργία.
Όταν διαγράφετε ένα υποκατάστημα, εμφανίζεται το SHA στο τερματικό:
Διαγράφηκε υποκατάστημα (ήταν)
Μπορείτε να χρησιμοποιήσετε την παρακάτω εντολή για να ανακτήσετε τον διαγραμμένο κλάδο:
git ολοκλήρωση αγοράς -b
Εάν δεν γνωρίζετε το SHA για τη δέσμευση στην άκρη του καταστήματός σας, μπορείτε πρώτα να χρησιμοποιήσετε το πηγαίνετε στο reflog εντολή για να γνωρίζετε την τιμή SHA και, στη συνέχεια, εφαρμόστε την παραπάνω εντολή ολοκλήρωσης αγοράς για να επαναφέρετε τον κλάδο σας.
Q # 35) Τι είναι git diff εντολή? Πώς είναι διαφορετικό από αυτό κατάσταση git;
Απάντηση: Git diff είναι μια εντολή πολλαπλών χρήσεων που μπορεί να εκτελεστεί για να δείξει τις διαφορές μεταξύ δύο αυθαίρετων δεσμεύσεων, αλλαγών μεταξύ του δέντρου εργασίας και μιας δέσμευσης, αλλαγές μεταξύ του δέντρου εργασίας και ενός ευρετηρίου, αλλαγές μεταξύ δύο αρχείων, αλλαγές μεταξύ ευρετηρίου και δέντρου κ.λπ.
ο κατάσταση git Η εντολή χρησιμοποιείται για την επιθεώρηση ενός αποθετηρίου. Δείχνει την κατάσταση του καταλόγου εργασίας και της περιοχής στάσης. Θα εμφανίσει τα αρχεία που έχουν σταδιακά, τα οποία δεν έχουν σταδιακά και τα αρχεία που δεν έχουν παρακολουθηθεί.
Q # 36) Τι περιέχει ένα αντικείμενο Commit;
Απάντηση: Το αντικείμενο δέσμευσης περιέχει κατακερματισμό αντικειμένου ανώτατου επιπέδου, γονέας δεσμεύει κατακερματισμό (εάν υπάρχει), πληροφορίες συγγραφέα και επιμελητή, ημερομηνία δέσμευσης και μήνυμα δέσμευσης.
Μπορείτε να το δείτε μέσω του git log εντολή.
Παράδειγμα:
(εικόνα πηγή )
Q # 37) Τι είναι το git cherry-pick; Ποια είναι τα σενάρια στα οποία μπορεί να χρησιμοποιηθεί το git cherry-pick;
Απάντηση: Git cherry-pick είναι μια ισχυρή εντολή για την εφαρμογή των αλλαγών που εισάγονται από μία ή περισσότερες υπάρχουσες δεσμεύσεις. Σας επιτρέπει να διαλέξετε μια δέσμευση από έναν κλάδο και να την εφαρμόσετε σε έναν άλλο.
git cherry-pick commitSha είναι η εντολή που χρησιμοποιείται για τη συλλογή κερασιών. commitSha είναι η αναφορά δεσμεύσεων.
Αυτή η εντολή μπορεί να χρησιμοποιηθεί για αναίρεση αλλαγών. Για παράδειγμα, εάν κατά λάθος έχετε δεσμευτεί σε λάθος κλάδο, τότε μπορείτε να δείτε το σωστό υποκατάστημα και να επιλέξετε το σημείο που θα πρέπει να ανήκει.
Μπορεί επίσης να χρησιμοποιηθεί σε ομαδική συνεργασία. Μπορεί να υπάρχουν σενάρια όπου ο ίδιος κωδικός πρέπει να μοιραστεί μεταξύ δύο συστατικών του προϊόντος. Σε αυτήν την περίπτωση, εάν ένας προγραμματιστής έχει ήδη γράψει αυτόν τον κωδικό, τότε ο άλλος μπορεί να επιλέξει τον ίδιο.
Η επιλογή Cherry-picking είναι επίσης χρήσιμη σε επείγουσες επιδιορθώσεις σφαλμάτων όπου μια δέσμευση κώδικα μπορεί να επιλεγεί απευθείας από τον κύριο κλάδο για να επιλύσει το πρόβλημα το συντομότερο δυνατό.
Q # 38) Σε τι χρησιμοποιείται το 'git reset'; Ποια είναι η προεπιλεγμένη λειτουργία αυτής της εντολής;
Απάντηση: Επαναφορά Git είναι μια ισχυρή εντολή για την αναίρεση τοπικών αλλαγών στην κατάσταση ενός Git repo. Αυτή η εντολή επαναφέρει το τρέχον HEAD στο καθορισμένο στάδιο.
Επαναφέρει τόσο το ευρετήριο όσο και τον κατάλογο εργασίας στην κατάσταση της τελευταίας σας δέσμευσης. Η επαναφορά του Git έχει τρεις τρόπους, δηλαδή μαλακό, σκληρό και αναμεμιγμένο. Ο προεπιλεγμένος τρόπος λειτουργίας είναι μικτός.
Q # 39) Ποια είναι η διαφορά μεταξύ «HEAD», «tree tree» και «index»;
Απάντηση: Το δέντρο εργασίας ή ο χώρος εργασίας είναι ο κατάλογος που περιέχει τα αρχεία προέλευσης στα οποία εργάζεστε αυτήν τη στιγμή.
Το ευρετήριο είναι η περιοχή στάσης στο Git όπου προετοιμάζονται οι δεσμεύσεις. Βρίσκεται μεταξύ της δέσμευσης και του δέντρου εργασίας σας. Το ευρετήριο Git είναι ένα μεγάλο δυαδικό αρχείο που καταχωρεί όλα τα αρχεία στον τρέχοντα κλάδο, τα ονόματά τους, τα άθροισμα ελέγχου και τις χρονικές σημάνσεις.
Αυτό το αρχείο υπάρχει στο /.git/index. Το HEAD είναι η αναφορά ή ο δείκτης της τελευταίας δέσμευσης στον τρέχοντα κλάδο αγοράς.
Q # 40) Ποια είναι η διαφορά μεταξύ rebase και συγχώνευσης; Πότε πρέπει να κάνετε επαναφορά και πότε πρέπει να συγχωνευτείτε;
Απάντηση: Τόσο οι εντολές επαναφοράς και συγχώνευσης χρησιμοποιούνται για την ενσωμάτωση αλλαγών από έναν κλάδο στον άλλο, αλλά με διαφορετικό τρόπο.
Όπως φαίνεται στις παρακάτω δύο εικόνες, ας υποθέσουμε ότι έχετε δεσμεύσει (αυτό είναι πριν από τη συγχώνευση / επαναφορά). Μετά τη συγχώνευση, θα λάβετε το αποτέλεσμα ως συνδυασμός δεσμεύσεων. Συνδέει τα ιστορικά και των δύο κλάδων και δημιουργεί μια νέα «συγχώνευση» στον κλάδο χαρακτηριστικών.
Από την άλλη πλευρά, το rebase θα μετακινήσει ολόκληρο τον κλάδο χαρακτηριστικών για να ξεκινήσει στην άκρη του κύριου κλάδου.
(εικόνα πηγή )
Οι δεσμεύσεις θα μοιάζουν με:
Η επαναφορά δεν συνιστάται για δημόσιους κλάδους, καθώς δημιουργεί ασυνεπή αποθετήρια. Ωστόσο, το rebasing είναι μια καλή επιλογή για ιδιωτικούς κλάδους / μεμονωμένους προγραμματιστές. Δεν είναι πολύ κατάλληλο για λειτουργία κλάδου ανά χαρακτηριστικό. Αλλά αν έχετε ένα μοντέλο υποκαταστήματος ανά προγραμματιστή, τότε το reasing δεν είναι κακό.
Επίσης, το rebase είναι μια καταστροφική λειτουργία, οπότε η ομάδα ανάπτυξης θα πρέπει να είναι αρκετά ικανή για να την εφαρμόσει σωστά. Διαφορετικά, η δεσμευμένη εργασία μπορεί να χαθεί.
Επιπλέον, η επαναφορά μιας συγχώνευσης είναι ευκολότερη από την επαναφορά μιας επαναφοράς. Επομένως, εάν γνωρίζετε ότι ενδέχεται να υπάρχουν δυνατότητες επαναφοράς, τότε θα πρέπει να χρησιμοποιήσετε τη συγχώνευση.
Η συγχώνευση επιμένει στο ιστορικό όπως είναι, ενώ η επανεκκίνηση ξαναγράφει το ιστορικό. Επομένως, εάν θέλετε να δείτε το ιστορικό εντελώς όπως συνέβη τότε θα πρέπει να χρησιμοποιήσετε τη συγχώνευση.
Q # 41) Ποια είναι η σύνταξη για επαναφορά;
Απάντηση: Η σύνταξη για την εντολή rebase είναι git rebase (νέα-δέσμευση)
Ε # 42) Πώς θα αφαιρέσετε ένα αρχείο από το Git χωρίς να το αφαιρέσετε πραγματικά από το τοπικό σας σύστημα αρχείων;
Απάντηση: Μπορείτε να χρησιμοποιήσετε την επιλογή 'προσωρινά αποθηκευμένη' για αυτό:
git rm -rf –cached $ FILES
Αυτή η εντολή θα αφαιρέσει τα αρχεία από το αποθετήριο σας χωρίς να τα διαγράψετε από το δίσκο σας.
Q # 43) Ποιο είναι το κοινό μοτίβο διακλάδωσης στο Git;
Απάντηση: Το κοινό μοτίβο διακλάδωσης βασίζεται στη ροή του git. Έχει δύο κύριους κλάδους, δηλ. Master και development.
- Ο κύριος κλάδος περιέχει τον κωδικό παραγωγής. Όλος ο κωδικός ανάπτυξης συγχωνεύεται στον κύριο κλάδο κάποια στιγμή.
- Ο κλάδος ανάπτυξης περιέχει τον κωδικό προπαραγωγής. Όταν ολοκληρωθούν οι δυνατότητες, συγχωνεύονται στον κύριο κλάδο, γενικά μέσω ενός αγωγού CI / CD.
Αυτό το μοντέλο έχει επίσης μερικούς υποστηρικτικούς κλάδους που χρησιμοποιούνται κατά τη διάρκεια του κύκλου ανάπτυξης:
- Υποκαταστήματα χαρακτηριστικών / Υποκαταστήματα θεμάτων: Χρησιμοποιούνται για την ανάπτυξη νέων δυνατοτήτων για επερχόμενες κυκλοφορίες. Μπορεί να διαχωριστεί από τον κλάδο ανάπτυξης και πρέπει να συγχωνευτεί ξανά στον κλάδο ανάπτυξης. Γενικά, αυτοί οι κλάδοι υπάρχουν μόνο σε αποθετήρια προγραμματιστών και όχι στην προέλευση.
- Υποκαταστήματα επείγουσας επιδιόρθωσης: Χρησιμοποιούνται για μη προγραμματισμένη κυκλοφορία παραγωγής όταν υπάρχει ανάγκη να διορθωθεί οποιοδήποτε κρίσιμο σφάλμα αμέσως στην έκδοση ζωντανής παραγωγής. Μπορεί να απομακρυνθούν από τον πλοίαρχο και πρέπει να συγχωνευτούν ξανά σε ανάπτυξη και πλοίαρχος
- Υποκαταστήματα έκδοσης: Χρησιμοποιούνται για την προετοιμασία της νέας παραγωγής παραγωγής. Ο κλάδος έκδοσης σάς επιτρέπει να κάνετε μικρές διορθώσεις σφαλμάτων και να προετοιμάζετε μεταδεδομένα για κυκλοφορία. Μπορούν να απομακρυνθούν από την ανάπτυξη και πρέπει να συγχωνευτούν ξανά σε κύριο και να αναπτυχθούν.
συμπέρασμα
Εξετάσαμε τις σημαντικές ερωτήσεις που γενικά τίθενται κατά τη διάρκεια συνεντεύξεων Git σε αυτό το σεμινάριο.
Αυτό όχι μόνο θα σας βοηθήσει να προετοιμαστείτε για τις επερχόμενες συνεντεύξεις, αλλά και θα αποσαφηνίσετε τις ιδέες σας.
Όλα τα καλύτερα για τη συνέντευξή σας!
Συνιστώμενη ανάγνωση
- Ερωτήσεις και απαντήσεις συνέντευξης
- Μερικές ενδιαφέρουσες ερωτήσεις συνέντευξης δοκιμών λογισμικού
- Κορυφαίες ερωτήσεις και απαντήσεις συνέντευξης προγραμματισμού 40 C
- Κορυφαίες 40 δημοφιλείς ερωτήσεις και απαντήσεις συνέντευξης J2EE που πρέπει να διαβάσετε
- Ερωτήσεις και απαντήσεις συνέντευξης δοκιμών ETL
- 20+ πιο συχνές ερωτήσεις και απαντήσεις για συνεντεύξεις εξόδου
- Κορυφαίες ερωτήσεις συνέντευξης για φόρμες και αναφορές της Oracle
- Μερικές δύσκολες μη αυτόματες ερωτήσεις και απαντήσεις