Git 2.29 Released With Experimental Support For Using More Secure SHA-256
Git 2.29 is now available with experimental support for using SHA-256 to increase security of code repositories over the possibility of intentional SHA-1 collisions with the current indices.
For the past number of releases there has been work underway to eventually migrate from SHA1 to SHA256 hashes. The intent is to increase the security of Git repositories and finally with Git 2.29 it's now in good enough shape to serve in an experimental capacity.
The git init command can be fed the --object-format=sha256 option for creating a Git repository using SHA-256 but at the moment there isn't a means of being able to upgrade a Git repository from SHA-1 to SHA-256.
When using the SHA-256 object format, pack checksums, index checksums, and object IDs are all generated using SHA-256 with this new format rather than SHA-1 that was the default format of SHA-1.
Git 2.29 having SHA-256 support albeit experimental is most exciting but there is also a number of other improvements for this release, including defaulting (again) to the Git Transport Protocol v2.
The full list of Git 2.29 changes can be found via the release announcement.
For the past number of releases there has been work underway to eventually migrate from SHA1 to SHA256 hashes. The intent is to increase the security of Git repositories and finally with Git 2.29 it's now in good enough shape to serve in an experimental capacity.
The git init command can be fed the --object-format=sha256 option for creating a Git repository using SHA-256 but at the moment there isn't a means of being able to upgrade a Git repository from SHA-1 to SHA-256.
When using the SHA-256 object format, pack checksums, index checksums, and object IDs are all generated using SHA-256 with this new format rather than SHA-1 that was the default format of SHA-1.
Git 2.29 having SHA-256 support albeit experimental is most exciting but there is also a number of other improvements for this release, including defaulting (again) to the Git Transport Protocol v2.
The full list of Git 2.29 changes can be found via the release announcement.
12 Comments