Git 2.0.0 was released yesterday on the Git repository, bringing many new updates and fixes from version 1.9.

One of the biggest changes is that “simple mode” is now the default for “git push,” which pushes only the current branch to the branch with the same name, and only when the current branch is set to integrate with that remote branch. The mode can be changed from traditional “matching” semantics using the configuration variable push.default.

(Related: gitsh: A dedicated shell for Git commands)

Other features for the UI and workflows include:
• “git add -u” and “git add -A”, when run without any pathspec, are now tree-wide operations even when run inside a subdirectory of a  working tree.

• “git add <path> is now the same as “git add -A <path>”.
• The core.statinfo configuration variable, which is a never-advertised synonym to core.checkstat, has been removed.
• The “-q” option to “git diff-files”, which does not mean “quiet,” has been removed (Git will ignore the deletion using “git diff-files –diff-filter=d”).
• “git commit” can be told to always GPG sign the resulting commit by setting the commit.gpgsign configuration variable to true (no-gpg-sign should override the command-line option).
• “git pull” can be told to only accept fast-forward by setting the new “pull.ff” configuration.   
• A new git reset “-N” option, which does not fully reset the index for paths the index knows about.
• The newly cloned submodule repositories by “git submodule update” will be on a local branch instead of on a detached HEAD, just like submodules added with “git submodule add,” when the checkout update mode is used.

More information on the new features as well as the code cleanups and bug fixes in Git 2.0.0 is available here.