git 2.17.0 💾

Git is a distributed version control system, originally designed for Linux kernel development and large projects with non-linear workflows. It's comprised of individual tools, reuses ssh and rsync protocols, emphasises speed and data integrity, and keeps every checkout as full-fledged repository, and cryptographically authenticates source history. Various graphical frontends, IDE integrations and web services (GitHub) exist; with its git-fast-export format meanwhile serves interoperability with

minor feature: diff" family of commands learned "--find-object= " option, to limit the findings to changes that involve the named object. "git format-patch" learned to give 72-cols to diffstat, which is, consistent with other line length limits the subcommand uses for, its output meant for e-mails. The log from "git daemon" can be redirected with a new option; one, relevant use case is to send the log to standard error (instead of, syslog) when running it from inetd. "git rebase" learned to take "--allow-empty-message" option. "git am" has learned the "--quit" option, in addition to the, existing "--abort" option; having the pair mirrors a few other, commands like "rebase" and "cherry-pick". "git worktree add" learned to run the post-checkout hook, just like, "git clone" runs it upon the initial checkout. "git tag" learned an explicit "--edit" option that allows the, message given via "-m" and "-F" to be further edited. "git fetch --prune-tags" may be used as a handy short-hand for, getting rid of stale tags that are locally held. The new "--show-current-patch" option gives an end-user facing way, to get the diff being applied when "git rebase" (and "git am"), stops with a conflict. "git add -p" used to offer "/" (look for a matching hunk) as a, choice, even there was only one hunk, which has been corrected. Also the single-key help is now given only for keys that are, enabled (e.g. help for '/' won't be shown when there is only one, hunk). Since Git 1.7.9, "git merge" defaulted to --no-ff (i.e. even when, the side branch being merged is a descendant of the current commit, create a merge commit instead of fast-forwarding) when merging a, tag object. This was appropriate default for integrators who pull, signed tags from their downstream contributors, but caused an, unnecessary merges when used by downstream contributors who, habitually "catch up" their topic branches with tagged releases, from the upstream. Update "git merge" to default to --no-ff only, when merging a ta

GNU LGPL c git scm vcs dvcs