"git add --edit" lets users edit the whole patch text to fine-tune what is added to the index. "git grep" gained the -p option to show the location of the match using the same context hunk marker that "git diff" uses. "git push $name" honors remote.$name.pushurl if present before using remote.$name.url. In other words, the URL used for fetching and pushing can be different. "git submodule update" gained the --rebase option to update checked out submodules by rebasing the local changes.
With the next major release, "git push" into a branch that is currently checked out will be refused by default. You can choose what should happen upon such a push by setting the configuration variable receive.denyCurrentBranch in the receiving repository. To ease the transition plan, the receiving repository of such a push running this release will issue a big warning when the configuration variable is missing.