1.9.4 and 1.8.2 are pretty close, but there may have a few problems between different git versions, mainly varying behaviors.
If you want to know what have changed, you can check git repository (https://github.com/git/git).
Clone it locally, and search for "compatibility" in the Documentation/RelNotes
directory (you can target 1.8 and 1.9 versions):
git clone [email protected]:git/git.git
grep "compatibility" Documentation/RelNotes/1.[89]* -n
Documentation/RelNotes/1.8.0.txt:4:Backward compatibility notes
Documentation/RelNotes/1.8.1.txt:4:Backward compatibility notes
Documentation/RelNotes/1.8.2.txt:4:Backward compatibility notes (this release)
Documentation/RelNotes/1.8.2.txt:25:Backward compatibility notes (for Git 2.0)
Documentation/RelNotes/1.8.3.txt:4:Backward compatibility notes (for Git 2.0)
Documentation/RelNotes/1.8.4.txt:4:Backward compatibility notes (for Git 2.0)
Documentation/RelNotes/1.8.5.txt:4:Backward compatibility notes (for Git 2.0)
Documentation/RelNotes/1.9.0.txt:4:Backward compatibility notes
Documentation/RelNotes/1.9.0.txt:30:Backward compatibility notes (for Git 2.0.0)
You're only concerned by 1.8.3+ releases, and you can see most of compatibility issues concern Git 2.0. The only one line that is interesting is this one:
Documentation/RelNotes/1.9.0.txt:4:Backward compatibility notes
It you take a look to 1.9.0.txt
, you'll see:
git submodules foreach $cmd $args
behavior has been enhanced
- loose-object format has been dropped
git fetch --tags
behavior has changed
git push $there $what
has been enhanced
repo-config
, tar-tree
, lost-found
, and peek-remote
have been dropped
Nothing alarming but git fetch --tags
changes, you shouldn't have any compatibility problem. Anyway, read carefully the full text:
Backward compatibility notes
"git submodule foreach $cmd $args" used to treat "$cmd $args" the same
way "ssh" did, concatenating them into a single string and letting the
shell unquote. Careless users who forget to sufficiently quote $args
get their argument split at $IFS whitespaces by the shell, and got
unexpected results due to this. Starting from this release, the
command line is passed directly to the shell, if it has an argument.
Read-only support for experimental loose-object format, in which users
could optionally choose to write their loose objects for a short
while between v1.4.3 and v1.5.3 era, has been dropped.
The meanings of the "--tags" option to "git fetch" has changed; the
command fetches tags in addition to what is fetched by the same
command line without the option.
The way "git push $there $what" interprets the $what part given on the
command line, when it does not have a colon that explicitly tells us
what ref at the $there repository is to be updated, has been enhanced.
A handful of ancient commands that have long been deprecated are
finally gone (repo-config, tar-tree, lost-found, and peek-remote).