Μετάβαση στο περιεχόμενο

Έλεγχος και συγχώνευση PR

Αυτός ο οδηγός δείχνει πώς να ελέγξετε και να συγχωνεύσετε ένα pull request.

  1. Μεταβείτε στα Pull requests στην πλαϊνή στήλη
  2. Επιλέξτε ένα PR από τη λίστα

Ένα PR ανοίγει ως πάγκος εργασίας με καρτέλες, όχι ως μία μόνο σελίδα. Πέντε καρτέλες ανοίγουν από προεπιλογή, με αυτή τη σειρά: Επισκόπηση, Diff, Έλεγχος εκδόσεων, Συνομιλία και Ενέργειες (έλεγχοι CI ομαδοποιημένοι ανά ροή εργασίας). Η Ανασκόπηση — η πρόοδος του pipeline ελέγχου και μετά το τεχνούργημα που δημοσίευσε μαζί με τη λωρίδα ευρημάτων του — σκόπιμα δεν είναι μία από αυτές: ένα PR δεν έχει ανασκόπηση μέχρι να τη ζητήσει κάποιος, οπότε την ανοίγει η Ερώτηση AI. Ένα τερματικό, ένας επεξεργαστής για ένα μεμονωμένο αρχείο, ένας ενσωματωμένος code-server και ένας περιηγητής μέσα στην εφαρμογή ανοίγουν κατά ζήτηση· καρτέλες προεπισκόπησης ανάπτυξης εισάγονται αυτόματα όταν εντοπιστεί ένα URL προεπισκόπησης στο PR. Η διάταξη των καρτελών σας διατηρείται ανά PR.

Η καρτέλα Επισκόπηση φέρει τα μεταδεδομένα του PR (συγγραφέα, branch, ετικέτες, ανατεθειμένους, αντιδράσεις, commits, κατάσταση ελέγχων) και τη γραμμή ενεργειών: ανανέωση, Ανασκόπηση, Συγχώνευση, άνοιγμα στο IDE και μενού υπερχείλισης ⋯.

Ανοίξτε την καρτέλα Diff για να δείτε όλο το diff του PR με μια ματιά, με δέντρο αρχείων για να πηγαίνετε από το ένα αρχείο στο άλλο.

  • Το κουμπί ρυθμίσεων στη γραμμή εργαλείων του diff εναλλάσσει τη Διαχωρισμένη (δίπλα-δίπλα) και την Ενοποιημένη προβολή και ενεργοποιεί ή απενεργοποιεί την αναδίπλωση γραμμών και τις λιγκτούρες της γραμματοσειράς κώδικα.
  • Οι κεφαλίδες hunk @@ αντικαθίστανται από τα χειριστήρια Show N lines / Show end of file, που ενσωματώνουν το γύρω περιεχόμενο με ένα κλικ.
  • Πατήστε j / k για να πηγαίνετε από αρχείο σε αρχείο, c για να συμπτύξετε ή να αναπτύξετε το αρχείο με την εστίαση, t για να επιστρέψει η πλαϊνή στήλη στο δέντρο αρχείων και ⌘F για αναζήτηση σε όλο το diff (Enter / Shift+Enter διατρέχουν τα αποτελέσματα).
  • Πατήστε v για να σημειώσετε το αρχείο με την εστίαση ως προβλημένο, και ο κέρσορας προχωρά στο επόμενο αρχείο. Στο GitHub η κατάσταση προβολής αποθηκεύεται στο forge, οπότε σας ακολουθεί ανάμεσα στους πελάτες· το GitLab και το Bitbucket δεν έχουν τέτοιο API, οπότε εκεί θυμάται μόνο σε αυτή τη συσκευή.

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

  1. Πατήστε το περιθώριο μιας γραμμής κώδικα για να ανοίξετε ένα πλαίσιο σύνταξης σχολίου αγκυρωμένο σε εκείνη τη γραμμή, ή χρησιμοποιήστε το κουμπί + σε μια κεφαλίδα αρχείου για σχόλιο σε επίπεδο αρχείου
  2. Γράψτε τα σχόλιά σας σε Markdown
  3. Υποβάλετε

Στο GitHub και το GitLab το πλαίσιο σύνταξης προσφέρει δύο τρόπους υποβολής: Προσθήκη μεμονωμένου σχολίου δημοσιεύει αμέσως, ενώ Έναρξη ανασκόπησης / Προσθήκη στην ανασκόπηση βάζει το σχόλιο σε εκκρεμή ανασκόπηση, η οποία αποστέλλεται με Έγκριση, Αίτημα αλλαγών ή Σχόλιο. Το Bitbucket δεν έχει ομαδοποίηση εκκρεμών ανασκοπήσεων, οπότε εκεί κάθε υποβολή δημοσιεύεται αμέσως. Η άμεση δημοσίευση εμφανίζει εκκρεμή κατάσταση ώσπου να την επιβεβαιώσει το forge και μετά περνά σε συγχρονισμένη. Αν η δημοσίευση αποτύχει, το νήμα σημαδεύεται με το σφάλμα και προσφέρει επανάληψη.

Μόνο το σώμα της ανασκόπησης είναι πρόχειρο: αποθηκεύεται στην πλευρά του διακομιστή με κλειδί (owner, repo, αριθμός PR) λίγο αφού σταματήσετε να πληκτρολογείτε, οπότε επιβιώνει μετά από επαναφόρτωση και σας ακολουθεί ανάμεσα στους πελάτες desktop και web.

  1. Πατήστε Ανασκόπηση στη γραμμή ενεργειών της Επισκόπησης (κρύβεται στα δικά σας PR και σε κλειστό ή συγχωνευμένο PR)
  2. Γράψτε το σώμα της ανασκόπησης. Μπορείτε να επισυνάψετε εικόνα, να εισαγάγετε emoji ή GIF και να εναλλάσσεστε μεταξύ σύνταξης και προεπισκόπησης
  3. Πατήστε Αίτημα αλλαγών, Σχόλιο ή Έγκριση

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

Το κουμπί Συγχώνευση εμφανίζεται όταν έχετε δικαίωμα εγγραφής και το PR είναι ανοιχτό και όχι πρόχειρο. Το χρώμα του είναι σήμα ετοιμότητας που προκύπτει από τις απαιτούμενες εγκρίσεις και την κατάσταση των ελέγχων (έτοιμο / εκκρεμές / αποκλεισμένο) — είναι μόνο ενδεικτικό. Το κουμπί δεν απενεργοποιείται ποτέ από την κατάσταση ανασκόπησης· αυτό που επιβάλλει τους κανόνες είναι η ίδια η προστασία διακλάδωσης του forge.

  1. Πατήστε Συγχώνευση για να ανοίξει το αναδυόμενο πλαίσιο συγχώνευσης
  2. Επιλέξτε μέθοδο συγχώνευσης: squash, commit συγχώνευσης ή rebase (προεπιλογή είναι το squash). Το Bitbucket δεν έχει πραγματική συγχώνευση rebase, οπότε το rebase αντιστοιχίζεται στη στρατηγική fast-forward του και αποτυγχάνει σε ένα branch που έχει αποκλίνει
  3. Για το squash και το commit συγχώνευσης, επεξεργαστείτε τον προγεμισμένο τίτλο και την περιγραφή του commit. Το rebase δεν δέχεται κανένα από τα δύο και κρύβει και τα δύο πεδία
  4. Διαβάστε το πλαίσιο προειδοποιήσεων — αναφέρει τους αποτυχημένους ελέγχους και τις εκκρεμείς ανασκοπήσεις, αλλά δεν σας εμποδίζει
  5. Πατήστε το κουμπί συγχώνευσης στο αναδυόμενο πλαίσιο για επιβεβαίωση

Η συγχώνευση είναι μη αναστρέψιμη: κάνει push commits στο forge, οπότε έχει βήμα επιβεβαίωσης αντί για καταχώριση αναίρεσης. Έπειτα η cache του PR ακυρώνεται, η κατάστασή του αλλάζει σε Συγχωνεύθηκε και εκπέμπεται ένα γεγονός PullRequestStatusChanged με κατάσταση merged. Αυτό το γεγονός απελευθερώνει το εφήμερο worktree του «Ανοίγματος στον επεξεργαστή» και ξεκινά δύο ενσωματωμένα pipeline: το Stale repository cleanup, που αφαιρεί τα παλιά worktrees και τους φακέλους συνομιλιών του PR, και το Release notes, που συντάσσει μια καταχώριση στο αρχείο αλλαγών.

Το μενού υπερχείλισης ⋯ στην καρτέλα Επισκόπηση περιέχει την Ερώτηση AI, που ξεκινά το ενσωματωμένο pipeline pr_review για αυτό το PR. Εμφανίζεται μόνο όσο το PR είναι ανοιχτό. Δείτε τη Χρήση ελέγχου με AI για το τι κάνει το pipeline και πώς να δημοσιεύσετε τα ευρήματά του, και τον Υπολογισμό ελέγχου για το ντετερμινιστικό μοντέλο κοορτών και αξόνων.

Το Control Center εισάγει επίσης PR που άνοιξαν άνθρωποι εκτός της εφαρμογής. Η ροή ελέγχου παραπάνω είναι ίδια. Τα εξωτερικά PR εντοπίζονται από την υπηρεσία polling PR.