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 ramificazioni e fusioni. Per garantire l'integrità della cronologia e resistere a modifiche retroattive, viene utilizzato l'hashing implicito dell'intera cronologia precedente in ogni commit, oltre alla possibilità di autentificazione con firme digitali da parte degli sviluppatori per singoli tag e commit.
Rispetto alla versione precedente, nella nuova versione sono stati inclusi 317 cambiamenti, sviluppati da 58 sviluppatori, di cui 13 hanno partecipato per la prima volta allo sviluppo. Principali :
- È stata aggiunta l'impostazione init.defaultBranch, che consente di scegliere un nome arbitrario per il ramo principale che verrà utilizzato di default. Questa impostazione è stata introdotta per i progetti i cui sviluppatori sono turbati dai ricordi della schiavitù, poiché la parola "master" è percepita come un suggerimento offensivo o evoca tormento e sensi di colpa non redenti. , e È stata quindi presa la decisione di utilizzare la parola "main" al posto di "master" per i rami principali. In Git, come prima, quando si esegue il comando "git init", si continua a creare di default il ramo "master", ma questo nome ora può essere cambiato. Ad esempio, per cambiare il nome del ramo iniziale in "main", è possibile utilizzare il comando:
git config —global init.defaultBranch main
- Sono state aggiunte ottimizzazioni delle prestazioni, basate sull'introduzione del formato di file commit-graph, utilizzato per ottimizzare l'accesso alle informazioni sui commit e supporto , strutture probabilistiche che consentono una falsa identificazione di un elemento mancante, ma escludono la mancata individuazione di un elemento esistente. La struttura indicata permette di velocizzare significativamente la ricerca nella cronologia delle modifiche utilizzando i comandi «git log — » o «git blame».
- Nel comando «git status» è disponibile l'output delle informazioni sul progresso dell'operazione di clonazione parziale (sparse-checkout).
- Per i comandi della famiglia «diff» è stata proposta una nuova impostazione «diff.relative».
- Durante il controllo con «git fsck» ora viene valutata la raccolta dell'albero degli oggetti e vengono individuati elementi non ordinati.
- Interfaccia semplificata per l'editing delle informazioni riservate nell'output del tracing.
- Nello script di completamento automatico dell'input è stata aggiunta la supporto per il completamento delle opzioni del comando «git switch».
- In «git diff» è stata aggiunta la possibilità di passare argomenti in diverse notazioni («git diff A..B C», «git diff A..B C…D» e così via).
- Nel comando «git fast-export —anonymize» è stata aggiunta la possibilità di stabilire una mappatura personalizzata degli elementi per personalizzare l'output, rendendolo più comodo per il debug.
- In «git gui» è stato consentito l'apertura di alberi di lavoro dalla finestra di dialogo iniziale.
- Nel protocollo «fetch/clone» è stata implementata la possibilità per il server di informare il cliente della necessità di scaricare file pack preparati in anticipo, oltre ai dati oggetto compressi trasmessi.
- Continuano i lavori per la transizione all'algoritmo di hashing SHA-256 al posto di SHA-1.
Fonte: opennet.ru
