EGit/Differences to Git
Differences to Git
Main differences between original (command line, C) Git and JGit (EGit).
- JGit does not yet support 'stash'. EGit 1.3 will enable showing stashes. Simple stash/unstash can be handled with an external launcher using command-line Git.
- JGit does not support any SVN bridging operations and there are no plans to add it. The most common ones (svn rebase, svn fetch, svn dcommit) can be handled with external launchers.
- JGit does not support bundles in any way - they can't be created pulled, or queried. There are no current plans to add bundle support.
- The only supported merge strategy is 'resolve'. Since the default strategy in command-line Git is 'recursive' in the most common case (pulling or merging one branch) you might well get different behavior from an egit merge or pull.
- JGit is also missing support for a number of configuration settings, including most of the ones related to merging. The list of some of them:
- 'core.autocrlf', which is is important for cross-platform development. This is planned for 1.3.
- 'push.default' no supported.
- Hooks are not currently supported.
- Submodules are not currently supported. JGit support for submodules is coming in 1.3, EGit 1.3 will partially support submodules.
- Creation of light-weight and signed tags is not supported.
- Aborting an incomplete merge is not supported.
- reset file or directory is not supported.
- When a directory is deleted from the working set, JGit will immediately remove it from the working tree and stage the deletion of the files. If you want to undo this you must manually recreate the deleted directory first. At that point you can use standard egit tools to recover the deleted files. [this one might be obsolete]
See also R Shapiro's notes section 2. JGit and missing features.