Rilascio del sistema di controllo del codice sorgente distribuito Git 2.23

Introdotto rilascio di un sistema di controllo del codice sorgente distribuito Git 2.23.0. Git è uno dei sistemi di controllo delle versioni più popolari, affidabili e ad alte prestazioni, che fornisce strumenti di sviluppo flessibili e non lineari basati su branching e merging. Per garantire l'integrità della cronologia e la resistenza a modifiche retroattive, viene utilizzato l'hashing implicito dell'intera cronologia precedente in ogni commit, ed è anche possibile certificare singoli tag e commit con firme digitali degli sviluppatori.

Rispetto alla versione precedente, la nuova versione comprendeva 505 modifiche, preparate con la partecipazione di 77 sviluppatori, di cui 26 hanno preso parte allo sviluppo per la prima volta. Di base innovazioni:

  • Vengono introdotti i comandi sperimentali "git switch" e "git Restore" per separare le funzionalità di "git checkout" liberamente accoppiate, come la manipolazione dei rami (cambio e creazione) e il ripristino dei file nella directory di lavoro ("git checkout $commit - $filename") o immediatamente nell'area di staging (“—staging”, non ha analoghi in “git checkout”). Vale la pena notare che, a differenza di "git checkout", "git Restore" rimuove i file non tracciati dalle directory da ripristinare ("--no-overlay" per impostazione predefinita).
  • Aggiunta l'opzione "git merge –quit" che, simile a "-abort", interrompe il processo di unione dei rami, ma lascia intatta la directory di lavoro. Questa opzione può essere utile se è preferibile che alcune delle modifiche apportate durante un'unione manuale vengano emesse come commit separato.
  • I comandi "git clone", "git fetch" e "git push" ora tengono conto della presenza di commit nei repository collegati (si alterna);
  • Aggiunto le opzioni “git colpa —ignore-rev” e “—ignore-revs-file” ti consentono di saltare i commit che apportano modifiche minori (ad esempio, correzioni di formattazione);
  • Aggiunta l'opzione “git cherry-pick —skip” per saltare un commit in conflitto (un analogo memorizzato della sequenza “git reset && git cherry-pick —continue”);
  • Aggiunta l'impostazione status.aheadBehind, che corregge permanentemente l'opzione “git status -[no-]ahead-behind”;
  • A partire da questa versione, "git log" per impostazione predefinita tiene conto delle modifiche apportate da mailmap, in modo simile a come già fa git shortlog;
  • L'operazione di aggiornamento della cache sperimentale del commit graph (core.commitGraph) introdotta nella 2.18 è stata notevolmente accelerata. Inoltre, abbiamo reso git for-each-ref più veloce quando si utilizzano più modelli e ridotto il numero di chiamate ad auto-gc in “git fetch —multiple”;
  • "git branch --list" ora mostra sempre HEAD distaccato all'inizio dell'elenco, indipendentemente dalla locale.

Fonte: opennet.ru

Aggiungi un commento