The major improvements in this update are:
Server-side filtering of references Simplifies client handling of the HTTP transport Easy extensibility of new features
These improvements were majorly the motive behind this new protocol especially to enable server-side filtering of references, before version 2 servers responded to all fetch commands with initial reference, listing all references in the complete repository. This complete listing was sent even when the client only cares about updating a single branch which listens out to be quite absurd and unnecessary. In case of a big repository containing hundreds of thousands of references, the server could end up sending tens of MB of data which is unnecessary and which would eventually be ignored. This typically dominates time and bandwidth resource during a simple fetch request, especially when you are updating a branch or even when you are just checking if you are up-to-date. Also read: Important Git Commands Every Programmer Should Learn Google recently rolled out support for protocol version 2 and have seen a top-notch performance improvement of up to 3 times for non-operational fetches of a single branch on repositories containing more than 500 thousand references. The Git project has tried on a number of occasions over the years to either limit the initial ref advertisement or move to a new protocol altogether but continued to run into two problems: Now, in every case, a client can issue a request to use version 2, using a transport-specific side channel, and version 2 servers can respond using the new protocol while older servers will ignore the side channel and just respond with an earlier ref advertisement. By placing version information behind a second NUL byte we can skirt around both the infinite loop bug and the explicit disallow of extra arguments besides hostname. Only newer servers will know to look for additional information hidden behind two NUL bytes and older servers won’t croak. For complete info on the new update and for knowing all about Git protocol version 2 in detail refer here Source: Google Open Source Blog