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 precedente versione, sono stati introdotti 537 cambiamenti, elaborati con la partecipazione di 71 sviluppatori, 19 dei quali hanno partecipato allo sviluppo per la prima volta. Principali :
- Rimosso l'inserimento predefinito implementato nella versione precedente del protocollo di comunicazione Git, utilizzato per la connessione remota del client al server Git. Il protocollo non è ancora considerato pronto per l'uso predefinito a causa dell'emergere di punti critici che richiedono un'ulteriore analisi.
- Aggiunto un insieme di opzioni per configurare la connessione SSL quando ci si collega tramite proxy.
- Ampliate le informazioni fornite durante l'uso dei filtri di trasformazione «clean» e «smudge». Ad esempio, ora viene mostrato l'oggetto , in cui appare il blob trasformato.
- Per evitare confusione, il comando "git describe" utilizza sempre ora la modalità di output estesa ("—long") se viene identificata un'etichetta sostituita associata al commit (in precedenza, un'etichetta firmata o annotata che descriveva il commit veniva mostrata anche se era stata rinominata o spostata nella gerarchia "refs/tags/", e il comando "git show tag^0" non funzionava come atteso — "refs/tags/tag" non veniva trovato o addirittura restituiva un'etichetta diversa).
- Quando si esegue "git pull", ora viene emesso un avviso se la variabile di configurazione pull.rebase non è esplicitamente impostata e non sono state applicate le opzioni "—[no-]rebase" o "—ff-only". Per sopprimere l'avviso da parte di chi non intende eseguire l'operazione di rebase, è possibile impostare il valore della variabile a "false".
- È stata effettuata una revisione delle opzioni di "git pull", comuni a "git fetch". Sono state documentate opzioni simili precedentemente non menzionate e si è garantito il passaggio delle opzioni saltate a "git fetch".
- È stata aggiunta al comando "git rebase" l'opzione "—no-gpg-sign" per sovrascrivere l'impostazione "commit.gpgSign".
- Nel comando "git format-patch" è stata aggiunta l'opzione di visualizzare le intestazioni "From:" e "Subject:" inalterate, senza trasformare i caratteri assenti nella codifica ASCII.
- In "git log", the option "--show-pulls" has been added, allowing you to view not only commits where changes were made but also the commit for merging those changes from a separate branch.
- Unified handling of interactive input across all components, with the addition of a fflush() call after displaying the input prompt, but before the read operation.
- In "git rebase", it is now permitted to reapply all local commits without first executing the "checkout" operation, even if some were previously pushed to upstream.
- The configuration variable value 'pack.useSparse' has been changed to 'true' to enable optimizations that were previously presented as experimental by default.
- In "git merge", the option "--autostash" has been added.
- The interface for "sparse-checkout" has been improved.
- In "git update-ref --stdin", several new actions have been added,
allowing direct control over link update transactions, for example, to implement two-step atomic link updates across multiple repositories. - Userdiff templates for Markdown documents have been added.
- The restriction on excluding all paths in sparse-checkout templates that lead to an empty working tree has been removed.
- L'operazione «git restore —staged —worktree» ora utilizza per impostazione predefinita il contenuto del ramo «HEAD», invece di restituire un errore.
- Prosegue il lavoro per passare all'algoritmo di hashing SHA-2 invece di SHA-1.
- Rivisitato il codice per l'interazione con GnuPG.
Fonte: opennet.ru
