Αποδέσμευση του συστήματος ελέγχου κατανεμημένης πηγής Git 2.23

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

Σε σύγκριση με την προηγούμενη έκδοση, η νέα έκδοση περιελάμβανε 505 αλλαγές, που προετοιμάστηκαν με τη συμμετοχή 77 προγραμματιστών, εκ των οποίων οι 26 συμμετείχαν στην ανάπτυξη για πρώτη φορά. Βασικός καινοτομίες:

  • Εισάγονται οι πειραματικές εντολές "git switch" και "git restore" για να διαχωρίσουν τις χαλαρά συζευγμένες δυνατότητες "git checkout", όπως ο χειρισμός κλάδου (εναλλαγή και δημιουργία) και η επαναφορά αρχείων στον κατάλογο εργασίας ("git checkout $commit - $filename") ή αμέσως στην περιοχή του σταδίου ("—staging", δεν έχει ανάλογο στο "git checkout"). Αξίζει να σημειωθεί ότι, σε αντίθεση με το "git checkout", το "git restore" αφαιρεί αρχεία που δεν έχουν εντοπιστεί από τους καταλόγους που αποκαθίστανται ("--no-overlay" από προεπιλογή).
  • Προστέθηκε η επιλογή "git merge –quit", η οποία, παρόμοια με το "-abort", σταματά τη διαδικασία συγχώνευσης κλάδων, αλλά αφήνει ανέγγιχτο τον κατάλογο εργασίας. Αυτή η επιλογή μπορεί να είναι χρήσιμη εάν ορισμένες από τις αλλαγές που έγιναν κατά τη διάρκεια μιας μη αυτόματης συγχώνευσης θα ήταν προτιμότερο να εκδοθούν ως ξεχωριστή δέσμευση.
  • Οι εντολές "git clone", "git fetch" και "git push" λαμβάνουν πλέον υπόψη την παρουσία δεσμεύσεων σε συνδεδεμένα αποθετήρια (αναπληρωματικοί);
  • Προστέθηκε οι επιλογές «git blame —ignore-rev» και «—ignore-revs-file» σάς επιτρέπουν να παραλείπετε δεσμεύσεις που κάνουν μικρές αλλαγές (για παράδειγμα, διορθώσεις μορφοποίησης).
  • Προστέθηκε η επιλογή "git cherry-pick —skip" για να παραλείψετε μια διένεξη δέσμευση (ένα απομνημονευμένο ανάλογο της ακολουθίας "git reset && git cherry-pick -continue").
  • Προστέθηκε η ρύθμιση status.aheadBehind, η οποία διορθώνει οριστικά την επιλογή "git status -[no-]ahead-behind".
  • Από αυτήν την έκδοση, το "git log" από προεπιλογή λαμβάνει υπόψη τις αλλαγές που γίνονται από το mailmap, παρόμοιο με αυτό που κάνει ήδη το git shortlog.
  • Η λειτουργία ενημέρωσης της πειραματικής κρυφής μνήμης του γραφήματος δέσμευσης (core.commitGraph) που εισήχθη στο 2.18 έχει επιταχυνθεί σημαντικά. Επίσης, έκανε το git for-each-ref γρηγορότερο κατά τη χρήση πολλαπλών προτύπων και μείωσε τον αριθμό των κλήσεων σε auto-gc στο "git fetch —multiple".
  • Το "git branch --list" εμφανίζει τώρα πάντα αποκομμένο HEAD στην αρχή της λίστας, ανεξάρτητα από τις τοπικές ρυθμίσεις.

Πηγή: opennet.ru

Προσθέστε ένα σχόλιο