banner git 2.44
La nuova versione di Git 2.44 è stata rilasciata dopo tre mesi di sviluppo e include 503 modifiche rispetto alla versione precedente. Queste modifiche sono state realizzate con la collaborazione di 85 sviluppatori, 34 dei quali hanno partecipato allo sviluppo per la prima volta.
Per chi non lo conoscesse, Git è noto come uno dei sistemi di controllo versione più popolari, affidabili e performanti , che offre strumenti di sviluppo flessibili e non lineari basati su branching e merging. Per preservare l'integrità della cronologia e prevenire modifiche retroattive, Git utilizza un hash implicito dell'intera cronologia precedente in ogni commit.
Punti salienti di Git 2.44
In questa nuova versione di Git 2.44, una delle funzionalità più importanti è il supporto per il riutilizzo degli oggetti in più pacchetti . Questa ottimizzazione consente a Git di sfruttare il riutilizzo degli oggetti in diversi pacchetti, eliminando la necessità di ricompilare un intero repository in un singolo pacchetto. Grazie a questo miglioramento, Git può generare pacchetti in modo più efficiente, con conseguente miglioramento della velocità e delle prestazioni durante le operazioni di push e pull da e verso repository remoti. A partire dalla versione 2.44, Git è in grado di gestire il riutilizzo degli oggetti in più file di pacchetto senza richiedere la ricompilazione dell'intero repository in un singolo file di pacchetto.
Inoltre, l' introduzione di `git replay` offre un'alternativa efficace a `git rebase` e può essere utilizzato per ricreare la cronologia su un server senza un working tree (un semplice repository che non contiene un working tree), elaborare più branch contemporaneamente, eseguire un'operazione di rebase su branch diversi da quelli attualmente in fase di recupero o semplicemente per velocizzare le operazioni di merge. `git replay` offre significativi miglioramenti delle prestazioni, soprattutto nelle operazioni di merge e rebase su repository di grandi dimensioni.
Con Git 2.44, l'opzione `--autosquash` può ora essere utilizzata per operazioni di modifica della base non interattive . Questa funzionalità consente di applicare automaticamente i commit fixup! o squash! alle posizioni corrispondenti senza dover ispezionare manualmente la lista delle cose da fare.
Un altro punto saliente è rappresentato dalle nuove e significative funzionalità e dai miglioramenti . I comandi `git add` e `git stash` ora supportano gli attributi di percorso `:(attr:…)`, che si configurano in modo simile al comando `git show`. Ad esempio, `git add ':(attr:~binary)'` può essere utilizzato per aggiungere tutti i file di testo (non binari) all'indice. Inoltre, è stato introdotto l'attributo `builtin_objectmode` per filtrare i percorsi dei file in base ai diritti di accesso. Ad esempio, `git add ':(attr:builtin_objectmode=100755)'` può essere utilizzato per aggiungere tutti gli eseguibili all'indice.
Tra le altre modifiche degne di nota si segnalano:
- Aggiunto il supporto per il sistema di integrazione continua GitLab CI.
- Opzione aggiunta «–algoritmo diff»Al« comandogit merge-file» per selezionare un algoritmo alternativo per valutare le differenze tra i file.
- Aggiunto supporto per l'aggiornamento dei token OAuth al backend di gestione delle credenziali wincred, in modo simile a come viene implementato nel baggiunge credenziali-cache e credenziali-libsecret.
- «git recupero» aggiunto il supporto per l'« opzione di configurazioneprendi.tutto«, che verrà gestito in modo simile all'aggiunta dell'opzione «-tutto»sulla riga di comando.
- Opzione aggiunta «–ignora-altri-alberi-di-lavoro» per abilitare l'aggiornamento e il check-out dei rami che utilizzano un albero di lavoro diverso. Ciò ripristina il comportamento precedente del comando “git checkout -B”.
- Ora è possibile impostare questa impostazione su «vero» per rimuovere l'istruzione «Disabilita questo messaggio con...» che occupava spazio sullo schermo durante la visualizzazione dei suggerimenti. Ciò migliora l'esperienza dell'utente rimuovendo gli elementi non necessari dall'output del comando.
- L'esecuzione di questo comando è stata ottimizzata con l'opzione «–no-sort». In precedenza, anche specificando «–nessun tipo«, la disposizione veniva ancora applicata in ordine alfabetico. Ora, dopo le ottimizzazioni, l'uso di «–nessun tipo" accelerare "git per ogni riferimento» di circa il 20% nei repository con un gran numero di riferimenti.
Infine, se siete interessati ad approfondire l'argomento, potete trovare maggiori dettagli al seguente link.