rilascio del sistema di controllo distribuito delle versioni . Git è uno dei sistemi di controllo delle versioni più popolari, affidabili e ad alte prestazioni, che offre strumenti flessibili per lo sviluppo non lineare, basati su ramificazione e fusione. Per garantire l'integrità della storia e la resistenza alle modifiche retroattive, viene utilizzata la hash implicita dell'intera storia precedente in ogni commit, è inoltre possibile la verifica tramite firme digitali dei tag e dei commit da parte degli sviluppatori.
Rispetto all'uscita precedente, nella nuova versione sono stati inclusi 317 cambiamenti, preparati con la partecipazione di 58 sviluppatori, di cui 13 hanno partecipato per la prima volta allo sviluppo. Principali :
- Aggiunta l'impostazione init.defaultBranch, che consente di scegliere un nome arbitrario per il ramo principale, che verrà applicato di default. Questa impostazione è stata introdotta per i progetti i cui sviluppatori non possono dimenticare il passato, poiché la parola «master» è percepita come un insulto o evoca tormenti interiori e un senso di colpa inestinguibile. , e è stata presa la decisione di utilizzare di default la parola «main» invece di «master» per i rami principali. In Git, come prima, eseguendo il comando «git init» verrà di default creata la branch «master», ma questo nome può ora essere modificato. Ad esempio, per cambiare il nome della branch iniziale in «main», si può usare il comando:
git config —global init.defaultBranch main
- Aggiunte ottimizzazioni delle prestazioni basate nell'emergere del formato di file commit-graph, utilizzato per ottimizzare l'accesso alle informazioni sui commit, supportando , una struttura probabilistica che consente la falsa identificazione di un elemento mancante, ma escludendo la mancata identificazione di un elemento esistente. La struttura indicata consente di aumentare notevolmente la velocità di ricerca nella cronologia delle modifiche utilizzando i comandi «git log — » o «git blame».
- Nel comando «git status» è stata migliorata l'output delle informazioni sul progresso nell'operazione di clonazione parziale (sparse-checkout).
- Per i comandi della famiglia «diff» è stata proposta una nuova impostazione «diff.relative».
- Durante il controllo tramite «git fsck» ora viene valutata la corretta ordinazione dell'albero degli oggetti e vengono identificati gli elementi non ordinati.
- Ristrutturato l'interfaccia per la modifica delle informazioni riservate nell'output di tracciamento.
- Nel script di completamento automatico dell'input è stato aggiunto il supporto per il completamento delle opzioni del comando «git switch».
- È stata aggiunta in «git diff» la possibilità di passare argomenti in diverse notazioni («git diff A..B C», «git diff A..B C…D», ecc.).
- Nel comando «git fast-export —anonymize» è stata aggiunta la possibilità di definire una mappatura personalizzata per personalizzare l'output, rendendolo più utile per il debug.
- In «git gui» è stato consentito l'apertura degli alberi di lavoro dalla finestra di dialogo iniziale.
- Nel protocollo «fetch/clone» è stata implementata la possibilità di informare il cliente da parte del server riguardo la necessità di caricare file pack preparati in aggiunta ai dati oggetto compressi trasmessi.
- Proseguono i lavori per la transizione all'algoritmo di hashing SHA-256 al posto di SHA-1.
Fonte: opennet.ru
