GIT

Software Screenshot:
GIT
Software Details:
Version: 2.16.0 updated
Upload Date: 20 Jan 18
Developer: Junio C Hamano
Distribution Type: Freeware
Downloads: 64

Rating: 3.0/5 (Total Votes: 1)

Git is one of the most widely used distributed version control systems, described by developers around the world as the number one VCS service. It runs only from terminal, but several front-ends are available for download.

It is a free and open source version control system application that can handle both large and small projects with maximum efficiency and speed. The program can be easily described as being small, fast and distributed.

Command-line options

The program comes with a handful of commands that can be easily remembered by anyone from the get-go. All the operations are performed locally, and has been engineered to work on the Linux kernel.

Included commands are add, bisect, branch, checkout, clone, commit, diff, fetch, grep, init, log, merge, mv, pull, push, rebase, reset, rm, show, status, and tag. You can easily learn what each command does by running the git --help command from a terminal window.

Features at a glance

When using Git, users will be able to add files, checkout branches or paths, clone repositories, create empty Git repos, join multiple development histories, display the working tree status, record changes, as well as to create, list or delete branches.

In addition, the application allows users to view changes between commits and working trees, print lines that match a pattern, view commit logs, download refs and objects, rename or move files, symlinks and directories, update remote refs, and remove files from a working tree.

Various graphical front-ends exist

Even if it’s a command-line only software, various graphical user interfaces (GUIs) are available, including git-cola, SmartGit, GitEye, giggle, and gitg. The project outclasses SCM (Software Configuration Management) utilities, such as CVS, Subversion, ClearCase, and Perforce, by having cheap local branching, multiple workflows, and convenient staging areas.

Bottom line

Summing up, Git is a free version control system that features lightning fast performance, it is easy to learn, and has a very small footprint. With Git you can do frictionless context switching, role-based code lines, feature based workflow, and disposable experimentation.

What is new in this release:

  • A helper function to read a single whole line into strbuf mistakenly triggered OOM error at EOF under certain conditions, which has been fixed.
  • In addition to "cc: # cruft", "cc: a@dd.re.ss # cruft" was taught to "git send-email" as a valid way to tell it that it needs to also send a carbon copy to in the trailer section.
  • Fix regression to "gitk --bisect" by a recent update.
  • Unlike "git commit-tree < file", "git commit-tree -F file" did not pass the contents of the file verbatim and instead completed an incomplete line at the end, if exists. The latter has been updated to match the behaviour of the former.
  • "git archive", especially when used with pathspec, stored an empty directory in its output, even though Git itself never does so. This has been fixed.
  • API error-proofing which happens to also squelch warnings from GCC.
  • "git gc" tries to avoid running two instances at the same time by reading and writing pid/host from and to a lock file; it used to use an incorrect fscanf() format when reading, which has been corrected.
  • The test linter has been taught that we do not like "echo -e".
  • Code cmp.std.c nitpick.
  • "git describe --match" learned to take multiple patterns in v2.13 series, but the feature ignored the patterns after the first one and did not work at all. This has been fixed.
  • "git cat-file --textconv" started segfaulting recently, which has been corrected.
  • The built-in pattern to detect the "function header" for HTML did not match .. elements without any attributes, which has been fixed.
  • "git mailinfo" was loose in decoding quoted printable and produced garbage when the two letters after the equal sign are not hexadecimal. This has been fixed.
  • The documentation for '-X' for merges was misleadingly written to suggest that "-s theirs" exists, which is not the case.
  • Spell the name of our system as "Git" in the output from request-pull script.
  • Fixes for a handful memory access issues identified by valgrind.
  • Backports a moral equivalent of 2015 fix to the poll emulation from the upstream gnulib to fix occasional breakages on HPE NonStop.
  • In the "--format=..." option of the "git for-each-ref" command (and its friends, i.e. the listing mode of "git branch/tag"), "%(atom:)" (e.g. "%(refname:)", "%(body:)" used to error out. Instead, treat them as if the colon and an empty string that follows it were not there.
  • Users with "color.ui = always" in their configuration were broken by a recent change that made plumbing commands to pay attention to them as the patch created internally by "git add -p" were colored (heh) and made unusable. This has been fixed.
  • "git branch -M a b" while on a branch that is completely unrelated to either branch a or branch b misbehaved when multiple worktree was in use. This has been fixed.
  • "git fast-export" with -M/-C option issued "copy" instruction on a path that is simultaneously modified, which was incorrect.
  • The checkpoint command "git fast-import" did not flush updates to refs and marks unless at least one object was created since the last checkpoint, which has been corrected, as these things can happen without any new object getting created.
  • The scripts to drive TravisCI has been reorganized and then an optimization to avoid spending cycles on a branch whose tip is tagged has been implemented.
  • "git fetch :" allows an object name on the side when the other side accepts such a request since Git v2.5, but the documentation was left stale.
  • A regression in 2.11 that made the code to read the list of alternate object stores overrun the end of the string has been fixed.

What is new in version 2.15.1:

  • A helper function to read a single whole line into strbuf mistakenly triggered OOM error at EOF under certain conditions, which has been fixed.
  • In addition to "cc: # cruft", "cc: a@dd.re.ss # cruft" was taught to "git send-email" as a valid way to tell it that it needs to also send a carbon copy to in the trailer section.
  • Fix regression to "gitk --bisect" by a recent update.
  • Unlike "git commit-tree < file", "git commit-tree -F file" did not pass the contents of the file verbatim and instead completed an incomplete line at the end, if exists. The latter has been updated to match the behaviour of the former.
  • "git archive", especially when used with pathspec, stored an empty directory in its output, even though Git itself never does so. This has been fixed.
  • API error-proofing which happens to also squelch warnings from GCC.
  • "git gc" tries to avoid running two instances at the same time by reading and writing pid/host from and to a lock file; it used to use an incorrect fscanf() format when reading, which has been corrected.
  • The test linter has been taught that we do not like "echo -e".
  • Code cmp.std.c nitpick.
  • "git describe --match" learned to take multiple patterns in v2.13 series, but the feature ignored the patterns after the first one and did not work at all. This has been fixed.
  • "git cat-file --textconv" started segfaulting recently, which has been corrected.
  • The built-in pattern to detect the "function header" for HTML did not match .. elements without any attributes, which has been fixed.
  • "git mailinfo" was loose in decoding quoted printable and produced garbage when the two letters after the equal sign are not hexadecimal. This has been fixed.
  • The documentation for '-X' for merges was misleadingly written to suggest that "-s theirs" exists, which is not the case.
  • Spell the name of our system as "Git" in the output from request-pull script.
  • Fixes for a handful memory access issues identified by valgrind.
  • Backports a moral equivalent of 2015 fix to the poll emulation from the upstream gnulib to fix occasional breakages on HPE NonStop.
  • In the "--format=..." option of the "git for-each-ref" command (and its friends, i.e. the listing mode of "git branch/tag"), "%(atom:)" (e.g. "%(refname:)", "%(body:)" used to error out. Instead, treat them as if the colon and an empty string that follows it were not there.
  • Users with "color.ui = always" in their configuration were broken by a recent change that made plumbing commands to pay attention to them as the patch created internally by "git add -p" were colored (heh) and made unusable. This has been fixed.
  • "git branch -M a b" while on a branch that is completely unrelated to either branch a or branch b misbehaved when multiple worktree was in use. This has been fixed.
  • "git fast-export" with -M/-C option issued "copy" instruction on a path that is simultaneously modified, which was incorrect.
  • The checkpoint command "git fast-import" did not flush updates to refs and marks unless at least one object was created since the last checkpoint, which has been corrected, as these things can happen without any new object getting created.
  • The scripts to drive TravisCI has been reorganized and then an optimization to avoid spending cycles on a branch whose tip is tagged has been implemented.
  • "git fetch :" allows an object name on the side when the other side accepts such a request since Git v2.5, but the documentation was left stale.
  • A regression in 2.11 that made the code to read the list of alternate object stores overrun the end of the string has been fixed.

What is new in version 2.15.0:

  • A helper function to read a single whole line into strbuf mistakenly triggered OOM error at EOF under certain conditions, which has been fixed.
  • In addition to "cc: # cruft", "cc: a@dd.re.ss # cruft" was taught to "git send-email" as a valid way to tell it that it needs to also send a carbon copy to in the trailer section.
  • Fix regression to "gitk --bisect" by a recent update.
  • Unlike "git commit-tree < file", "git commit-tree -F file" did not pass the contents of the file verbatim and instead completed an incomplete line at the end, if exists. The latter has been updated to match the behaviour of the former.
  • "git archive", especially when used with pathspec, stored an empty directory in its output, even though Git itself never does so. This has been fixed.
  • API error-proofing which happens to also squelch warnings from GCC.
  • "git gc" tries to avoid running two instances at the same time by reading and writing pid/host from and to a lock file; it used to use an incorrect fscanf() format when reading, which has been corrected.
  • The test linter has been taught that we do not like "echo -e".
  • Code cmp.std.c nitpick.
  • "git describe --match" learned to take multiple patterns in v2.13 series, but the feature ignored the patterns after the first one and did not work at all. This has been fixed.
  • "git cat-file --textconv" started segfaulting recently, which has been corrected.
  • The built-in pattern to detect the "function header" for HTML did not match .. elements without any attributes, which has been fixed.
  • "git mailinfo" was loose in decoding quoted printable and produced garbage when the two letters after the equal sign are not hexadecimal. This has been fixed.
  • The documentation for '-X' for merges was misleadingly written to suggest that "-s theirs" exists, which is not the case.
  • Spell the name of our system as "Git" in the output from request-pull script.
  • Fixes for a handful memory access issues identified by valgrind.
  • Backports a moral equivalent of 2015 fix to the poll emulation from the upstream gnulib to fix occasional breakages on HPE NonStop.
  • In the "--format=..." option of the "git for-each-ref" command (and its friends, i.e. the listing mode of "git branch/tag"), "%(atom:)" (e.g. "%(refname:)", "%(body:)" used to error out. Instead, treat them as if the colon and an empty string that follows it were not there.
  • Users with "color.ui = always" in their configuration were broken by a recent change that made plumbing commands to pay attention to them as the patch created internally by "git add -p" were colored (heh) and made unusable. This has been fixed.
  • "git branch -M a b" while on a branch that is completely unrelated to either branch a or branch b misbehaved when multiple worktree was in use. This has been fixed.
  • "git fast-export" with -M/-C option issued "copy" instruction on a path that is simultaneously modified, which was incorrect.
  • The checkpoint command "git fast-import" did not flush updates to refs and marks unless at least one object was created since the last checkpoint, which has been corrected, as these things can happen without any new object getting created.
  • The scripts to drive TravisCI has been reorganized and then an optimization to avoid spending cycles on a branch whose tip is tagged has been implemented.
  • "git fetch :" allows an object name on the side when the other side accepts such a request since Git v2.5, but the documentation was left stale.
  • A regression in 2.11 that made the code to read the list of alternate object stores overrun the end of the string has been fixed.

What is new in version 2.14.1:

  • This release forward-ports the fix for "ssh://..." URL from Git v2.7.6

What is new in version 2.9.3:

  • * A helper function that takes the contents of a commit object and finds its subject line did not ignore leading blank lines, as is commonly done by other codepaths. Make it ignore leading blank lines to match.
  • Git does not know what the contents in the index should be for a path added with "git add -N" yet, so "git grep --cached" should not show hits (or show lack of hits, with -L) in such a path, but that logic does not apply to "git grep", i.e. searching in the working tree files. But we did so by mistake, which has been corrected.
  • "git rebase -i --autostash" did not restore the auto-stashed change when the operation was aborted.
  • "git commit --amend --allow-empty-message -S" for a commit without any message body could have misidentified where the header of the commit object ends.
  • More mark-up updates to typeset strings that are expected to literally typed by the end user in fixed-width font.
  • For a long time, we carried an in-code comment that said our colored output would work only when we use fprintf/fputs on Windows, which no longer is the case for the past few years.
  • "gc.autoPackLimit" when set to 1 should not trigger a repacking when there is only one pack, but the code counted poorly and did so.
  • One part of "git am" had an oddball helper function that called stuff from outside "his" as opposed to calling what we have "ours", which was not gender-neutral and also inconsistent with the rest of the system where outside stuff is usuall called "theirs" in contrast to "ours".
  • The test framework learned a new helper test_match_signal to check an exit code from getting killed by an expected signal.
  • "git blame -M" missed a single line that was moved within the file.
  • Fix recently introduced codepaths that are involved in parallel submodule operations, which gave up on reading too early, and could have wasted CPU while attempting to write under a corner case condition.
  • "git grep -i" has been taught to fold case in non-ascii locales correctly.
  • A test that unconditionally used "mktemp" learned that the command is not necessarily available everywhere.
  • "git blame file" allowed the lineage of lines in the uncommitted, unadded contents of "file" to be inspected, but it refused when "file" did not appear in the current commit. When "file" was created by renaming an existing file (but the change has not been committed), this restriction was unnecessarily tight.
  • "git add -N dir/file && git write-tree" produced an incorrect tree when there are other paths in the same directory that sorts after "file".
  • "git fetch http://user:pass@host/repo..." scrubbed the userinfo part, but "git push" didn't.
  • An age old bug that caused "git diff --ignore-space-at-eol" misbehave has been fixed.
  • "git notes merge" had a code to see if a path exists (and fails if it does) and then open the path for writing (when it doesn't). Replace it with open with O_EXCL.
  • "git pack-objects" and "git index-pack" mostly operate with off_t when talking about the offset of objects in a packfile, but there were a handful of places that used "unsigned long" to hold that value, leading to an unintended truncation.
  • Recent update to "git daemon" tries to enable the socket-level KEEPALIVE, but when it is spawned via inetd, the standard input file descriptor may not necessarily be connected to a socket. Suppress an ENOTSOCK error from setsockopt().
  • Recent FreeBSD stopped making perl available at /usr/bin/perl; switch the default the built-in path to /usr/local/bin/perl on not too ancient FreeBSD releases.
  • "git status" learned to suggest "merge --abort" during a conflicted merge, just like it already suggests "rebase --abort" during a conflicted rebase.
  • The .c/.h sources are marked as such in our .gitattributes file so that "git diff -W" and friends would work better.
  • Existing autoconf generated test for the need to link with pthread library did not check all the functions from pthread libraries; recent FreeBSD has some functions in libc but not others, and we mistakenly thought linking with libc is enough when it is not.
  • Allow http daemon tests in Travis CI tests.
  • Users of the parse_options_concat() API function need to allocate extra slots in advance and fill them with OPT_END() when they want to decide the set of supported options dynamically, which makes the code error-prone and hard to read. This has been corrected by tweaking the API to allocate and return a new copy of "struct option" array.
  • The use of strbuf in "git rm" to build filename to remove was a bit suboptimal, which has been fixed.
  • "git commit --help" said "--no-verify" is only about skipping the pre-commit hook, and failed to say that it also skipped the commit-msg hook.
  • "git merge" in Git v2.9 was taught to forbid merging an unrelated lines of history by default, but that is exactly the kind of thing the "--rejoin" mode of "git subtree" (in contrib/) wants to do. "git subtree" has been taught to use the "--allow-unrelated-histories" option to override the default.
  • The build procedure for "git persistent-https" helper (in contrib/) has been updated so that it can be built with more recent versions of Go.
  • There is an optimization used in "git diff $treeA $treeB" to borrow an already checked-out copy in the working tree when it is known to be the same as the blob being compared, expecting that open/mmap of such a file is faster than reading it from the object store, which involves inflating and applying delta. This however kicked in even when the checked-out copy needs to go through the convert-to-git conversion (including the clean filter), which defeats the whole point of the optimization. The optimization has been disabled when the conversion is necessary.
  • "git -c grep.patternType=extended log --basic-regexp" misbehaved because the internal API to access the grep machinery was not designed well.
  • Windows port was failing some tests in t4130, due to the lack of inum in the returned values by its lstat(2) emulation.
  • The characters in the label shown for tags/refs for commits in "gitweb" output are now properly escaped for proper HTML output.
  • FreeBSD can lie when asked mtime of a directory, which made the untracked cache code to fall back to a slow-path, which in turn caused tests in t7063 to fail because it wanted to verify the behaviour of the fast-path.
  • Squelch compiler warnings for netmalloc (in compat/) library.
  • The API documentation for hashmap was unclear if hashmap_entry can be safely discarded without any other consideration. State that it is safe to do so.
  • Not-so-recent rewrite of "git am" that started making internal calls into the commit machinery had an unintended regression, in that no matter how many seconds it took to apply many patches, the resulting committer timestamp for the resulting commits were all the same.
  • "git difftool ..." started in a subdirectory failed to interpret the paths relative to that directory, which has been fixed.

What is new in version 2.9.1:

  • When "git daemon" is run without --[init-]timeout specified, a connection from a client that silently goes offline can hang around for a long time, wasting resources. The socket-level KEEPALIVE has been enabled to allow the OS to notice such failed connections.
  • The commands in `git log` family take %C(auto) in a custom format string. This unconditionally turned the color on, ignoring --no-color or with --color=auto when the output is not connected to a tty; this was corrected to make the format truly behave as "auto".
  • "git rev-list --count" whose walk-length is limited with "-n" option did not work well with the counting optimized to look at the bitmap index.
  • "git show -W" (extend hunks to cover the entire function, delimited by lines that match the "funcname" pattern) used to show the entire file when a change added an entire function at the end of the file, which has been fixed.
  • The documentation set has been updated so that literal commands, configuration variables and environment variables are consistently typeset in fixed-width font and bold in manpages.
  • "git svn propset" subcommand that was added in 2.3 days is documented now.
  • The documentation tries to consistently spell "GPG"; when referring to the specific program name, "gpg" is used.
  • "git reflog" stopped upon seeing an entry that denotes a branch creation event (aka "unborn"), which made it appear as if the reflog was truncated.
  • The git-prompt scriptlet (in contrib/) was not friendly with those who uses "set -u", which has been fixed.
  • A codepath that used alloca(3) to place an unbounded amount of data on the stack has been updated to avoid doing so.
  • "git update-index --add --chmod=+x file" may be usable as an escape hatch, but not a friendly thing to force for people who do need to use it regularly. "git add --chmod=+x file" can be used instead.
  • Build improvements for gnome-keyring (in contrib/)
  • "git status" used to say "working directory" when it meant "working tree".
  • Comments about misbehaving FreeBSD shells have been clarified with the version number (9.x and before are broken, newer ones are OK).
  • "git cherry-pick A" worked on an unborn branch, but "git cherry-pick A..B" didn't.
  • "git add -i/-p" learned to honor diff.compactionHeuristic experimental knob, so that the user can work on the same hunk split as "git diff" output.
  • "log --graph --format=" learned that "%>|(N)" specifies the width relative to the terminal's left edge, not relative to the area to draw text that is to the right of the ancestry-graph section. It also now accepts negative N that means the column limit is relative to the right border.
  • The ownership rule for the piece of memory that hold references to be fetched in "git fetch" was screwy, which has been cleaned up.
  • "git bisect" makes an internal call to "git diff-tree" when bisection finds the culprit, but this call did not initialize the data structure to pass to the diff-tree API correctly.
  • Formats of the various data (and how to validate them) where we use GPG signature have been documented.
  • Fix an unintended regression in v2.9 that breaks "clone --depth" that recurses down to submodules by forcing the submodules to also be cloned shallowly, which many server instances that host upstream of the submodules are not prepared for.
  • Fix unnecessarily waste in the idiomatic use of ': ${VAR=default}' to set the default value, without enclosing it in double quotes.
  • Some platform-specific code had non-ANSI strict declarations of C functions that do not take any parameters, which has been corrected.
  • The internal code used to show local timezone offset is not prepared to handle timestamps beyond year 2100, and gave a bogus offset value to the caller. Use a more benign looking +0000 instead and let "git log" going in such a case, instead of aborting.
  • One among four invocations of readlink(1) in our test suite has been rewritten so that the test can run on systems without the command (others are in valgrind test framework and t9802).
  • t/perf needs /usr/bin/time with GNU extension; the invocation of it is updated to "gtime" on Darwin.
  • A bug, which caused "git p4" while running under verbose mode to report paths that are omitted due to branch prefix incorrectly, has been fixed; the command said "Ignoring file outside of prefix" for paths that are _inside_.
  • The top level documentation "git help git" still pointed at the documentation set hosted at now-defunct google-code repository. Update it to point to https://git.github.io/htmldocs/git.html instead.

What is new in version 2.9.0:

New in GIT 2.8.1 (April 5th, 2016)

What is new in version 2.8.1:

  • "make rpmbuild" target was broken as its input, git.spec.in, was not updated to match a file it describes that has been renamed recently. This has been fixed.

What is new in version 2.7.3:

  • Traditionally, the tests that try commands that work on the contents in the working tree were named with "worktree" in their filenames, but with the recent addition of "git worktree" subcommand, whose tests are also named similarly, it has become harder to tell them apart. The traditional tests have been renamed to use "work-tree" instead in an attempt to differentiate them.
  • Many codepaths forget to check return value from git_config_set(); the function is made to die() to make sure we do not proceed when setting a configuration variable failed.
  • Handling of errors while writing into our internal asynchronous process has been made more robust, which reduces flakiness in our tests.
  • "git show 'HEAD:Foo[BAR]Baz'" did not interpret the argument as a rev, i.e. the object named by the the pathname with wildcard characters in a tree object.
  • "git rev-parse --git-common-dir" used in the worktree feature misbehaved when run from a subdirectory.
  • The "v(iew)" subcommand of the interactive "git am -i" command was broken in 2.6.0 timeframe when the command was rewritten in C.
  • "git merge-tree" used to mishandle "both sides added" conflict with its own "create a fake ancestor file that has the common parts of what both sides have added and do a 3-way merge" logic; this has been updated to use the usual "3-way merge with an empty blob as the fake common ancestor file" approach used in the rest of the system.
  • The memory ownership rule of fill_textconv() API, which was a bit tricky, has been documented a bit better.
  • The documentation did not clearly state that the 'simple' mode is now the default for "git push" when push.default configuration is not set.
  • Recent versions of GNU grep are pickier when their input contains arbitrary binary data, which some of our tests uses. Rewrite the tests to sidestep the problem.
  • A helper function "git submodule" uses since v2.7.0 to list the modules that match the pathspec argument given to its subcommands (e.g. "submodule add ") has been fixed.
  • "git config section.var value" to set a value in per-repository configuration file failed when it was run outside any repository, but didn't say the reason correctly.
  • The code to read the pack data using the offsets stored in the pack idx file has been made more carefully check the validity of the data in the idx.

What is new in version 2.7.2:

  • The low-level merge machinery has been taught to use CRLF line termination when inserting conflict markers to merged contents that are themselves CRLF line-terminated.
  • "git worktree" had a broken code that attempted to auto-fix possible inconsistency that results from end-users moving a worktree to different places without telling Git (the original repository needs to maintain backpointers to its worktrees, but "mv" run by end-users who are not familiar with that fact will obviously not adjust them), which actually made things worse when triggered.
  • "git push --force-with-lease" has been taught to report if the push needed to force (or fast-forwarded).
  • The emulated "yes" command used in our test scripts has been tweaked not to spend too much time generating unnecessary output that is not used, to help those who test on Windows where it would not stop until it fills the pipe buffer due to lack of SIGPIPE.
  • The vimdiff backend for "git mergetool" has been tweaked to arrange and number buffers in the order that would match the expectation of majority of people who read left to right, then top down and assign buffers 1 2 3 4 "mentally" to local base remote merge windows based on that order.
  • The documentation for "git clean" has been corrected; it mentioned that .git/modules/* are removed by giving two "-f", which has never been the case.
  • Paths that have been told the index about with "add -N" are not quite yet in the index, but a few commands behaved as if they already are in a harmful way.
  • Also includes tiny documentation and test updates.

What is new in version 2.6.4:

  • The "configure" script did not test for -lpthread correctly, which upset some linkers.
  • Add support for talking http/https over socks proxy.
  • Portability fix for Windows, which may rewrite $SHELL variable using non-POSIX paths.
  • We now consistently allow all hooks to ignore their standard input, rather than having git complain of SIGPIPE.
  • Fix shell quoting in contrib script.
  • Test portability fix for a topic in v2.6.1.
  • Allow tilde-expansion in some http config variables.
  • Give a useful special case "diff/show --word-diff-regex=." as an example in the documentation.
  • Fix for a corner case in filter-branch.
  • Make git-p4 work on a detached head.
  • Documentation clarification for "check-ignore" without "--verbose".
  • Just like the working tree is cleaned up when the user cancelled submission in P4Submit.applyCommit(), clean up the mess if "p4 submit" fails.
  • Having a leftover .idx file without corresponding .pack file in the repository hurts performance; "git gc" learned to prune them.
  • The code to prepare the working tree side of temporary directory for the "dir-diff" feature forgot that symbolic links need not be copied (or symlinked) to the temporary area, as the code already special cases and overwrites them. Besides, it was wrong to try computing the object name of the target of symbolic link, which may not even exist or may be a directory.
  • There was no way to defeat a configured rebase.autostash variable from the command line, as "git rebase --no-autostash" was missing.
  • Allow "git interpret-trailers" to run outside of a Git repository.
  • Produce correct "dirty" marker for shell prompts, even when we are on an orphan or an unborn branch.
  • Some corner cases have been fixed in string-matching done in "git status".
  • Apple's common crypto implementation of SHA1_Update() does not take more than 4GB at a time, and we now have a compile-time workaround for it.

What is new in version 2.5.3:

  • The experimental untracked-cache feature were buggy when paths with a few levels of subdirectories are involved.
  • Recent versions of scripted "git am" has a performance regression in "git am --skip" codepath, which no longer exists in the built-in version on the 'master' front. Fix the regression in the last scripted version that appear in 2.5.x maintenance track and older.

What is new in version 2.4.6:

  • "git fetch --depth=" and "git clone --depth=" issued a shallow transfer request even to an upload-pack that does not support the capability.
  • "git fsck" used to ignore missing or invalid objects recorded in reflog.
  • The tcsh completion writes a bash scriptlet but that would have failed for users with noclobber set.
  • Recent Mac OS X updates breaks the logic to detect that the machine is on the AC power in the sample pre-auto-gc script.
  • "git format-patch --ignore-if-upstream A..B" did not like to be fed tags as boundary commits.
  • Also contains typofixes, documentation updates and trivial code
  • clean-ups.

What is new in version 2.4.2:

  • "git rev-list --objects $old --not --all" to see if everything that is reachable from $old is already connected to the existing refs was very inefficient.
  • "hash-object --literally" introduced in v2.2 was not prepared to take a really long object type name.
  • "git rebase --quiet" was not quite quiet when there is nothing to do.
  • The completion for "log --decorate=" parameter value was incorrect.
  • "filter-branch" corrupted commit log message that ends with an incomplete line on platforms with some "sed" implementations that munge such a line. Work it around by avoiding to use "sed".
  • "git daemon" fails to build from the source under NO_IPV6 configuration (regression in 2.4).
  • "git stash pop/apply" forgot to make sure that not just the working tree is clean but also the index is clean. The latter is important as a stash application can conflict and the index will be used for conflict resolution.
  • We have prepended $GIT_EXEC_PATH and the path "git" is installed in (typically "/usr/bin") to $PATH when invoking subprograms and hooks for almost eternity, but the original use case the latter tried to support was semi-bogus (i.e. install git to /opt/foo/git and run it without having /opt/foo on $PATH), and more importantly it has become less and less relevant as Git grew more mainstream (i.e. the users would _want_ to have it on their $PATH). Stop prepending the path in which "git" is installed to users' $PATH, as that would interfere the command search order people depend on (e.g. they may not like versions of programs that are unrelated to Git in /usr/bin and want to override them by having different ones in /usr/local/bin and have the latter directory earlier in their $PATH).
  • Also contains typofixes, documentation updates and trivial code clean-ups.

Similar Software

hgnested
hgnested

14 Apr 15

gwsmhg
gwsmhg

20 Feb 15

Cervisia
Cervisia

2 Jun 15

CrossVC XXL
CrossVC XXL

14 Apr 15

Comments to GIT

Comments not found
Add Comment
Turn on images!