Due to regressions discovered at the last minute, two topics that have been in the master branch for a while had to be reverted. They are expected to come back after fixing the regressions in future releases.
Here are some highlights:
- "git log" learnt the "-Lbegin,end:filename" option. This starts from the specified range and digs through the history. It may still have rough edges and memory leaks, though.
- "git clean" learnt the interactive mode, modeled after "git add -i" interface.
- "git check-mailmap" is a new command that lets you inquire your .mailmap file for the canonical username and e-mail address.
- "git name-rev" learnt to name an annotated tag object name back to its tagname.
- Various subcommands of "git submodule" now work even from a subdirectory.
- "git submodule update" can optionally clone the submodule repositories shallowly.
- The "push.default=simple" mode of "git push" has been updated to behave like "current" when you push to a remote that is different from where you fetch from (e.g. via remote.pushdefault), in order to better support the triangular workflow.
- "git log" learnt the "--author-date-order" option.
- The configuration variable color.ui defaults to "auto" now.
- "git describe" learnt the "--first-parent" option.
- "git fetch $remote $branch" used to avoid touching the remote-tracking branch (you could always be explicit and say "git fetch $remote $branch:refs/remotes/$remote/$branch"). The command now updates the remote-tracking branch (if configured).
- Use of platform fnmatch(3) function (many places like pathspec matching, .gitignore and .gitattributes) have been replaced with wildmatch, allowing "foo/**/bar" to match "foo/bar", "foo/a/bar", etc.