-
Notifications
You must be signed in to change notification settings - Fork 10
FAQ
Git is a distributed SCM/VCS, which means every developer has a full copy of all history of every revision of the code, making queries against the history very fast and versatile. The EGit project is implementing Eclipse tooling on top of a Java implementation of Git.
JGit is a EDL/BSD licensed, lightweight, pure Java library implementing the Git version control file access routines, network protocols, and core version control algorithms.
EGit is an EPL licensed Eclipse Team provider for Git, built on top of JGit.
You can find the latest changes for EGit and JGit below:
It's recommended to use the latest released version of EGit, which is always available in this p2 repository (update site): https://download.eclipse.org/egit/updates In case you need an older version, try an older repository, the following table lists the stable URL of all released EGit p2 repositories.
Note: open the p2 repository URL from the Eclipse installation wizard (Help \ Install New Software) and add it as a new "Software Site". You may use the p2 browser to inspect the content of a p2 repository.
https://download.eclipse.org/egit/updates always contains the latest release (first line in bold)
The project follows a pattern of https://download.eclipse.org/egit/updates-version for its sites. Old releases are moved from the download to the archive server https://archive.eclipse.org/egit/updates-version.
Since 3.0 P2 repositories are also deployed to repo.eclipse.org:
- zipped p2 repositories are located under https://repo.eclipse.org/content/groups/releases/org/eclipse/egit/org.eclipse.egit.repository/
- unzipped p2 repositories which can be directly installed or referenced from a target platform are located under https://repo.eclipse.org/content/unzip/releases.unzip/org/eclipse/egit/org.eclipse.egit.repository/
CVEs
- CVE-2023-4759 is fixed in JGit 6.6.1 and 6.7.0, included in EGit 6.6.1 and 6.7.0.
All release p2 repositories will be kept forever.
Version | target simultaneous release version | p2 repository URL | browse p2 repository |
---|---|---|---|
master branch - 7.2.0-SNAPSHOT | 2025-03 (4.35.0) | https://download.eclipse.org/egit/updates-nightly | updates-nightly |
stable-7.1 branch - 7.1.1-SNAPSHOT | 2024-12 (4.34.0) | https://download.eclipse.org/egit/updates-stable-nightly | updates-stable-nightly |
In general EGit promises to support at least the latest two Eclipse releases.
If possible we will not prevent usage in older releases but if we want to take advantage of new functionality only available in one of the latest two Eclipse releases but not in older releases we will update dependencies which will in fact discontinue support for older releases.
EGit | Contained in release train | Supported Version of Eclipse |
---|---|---|
7.1.0.202411261347-r | Eclipse 4.34 (2024-12) | Eclipse 4.28 + (2023-06) |
7.0.0.202409031743-r | Eclipse 4.33 (2024-09) | Eclipse 4.28 + (2023-06) |
6.10.0.202406032230-r | Eclipse 4.32 (2024-06) | Eclipse 4.26 + (2022-12) |
6.9.0.202403050737-r | Eclipse 4.31 (2024-03) | Eclipse 4.26 + (2022-12) |
6.8.0.202311291450-r | Eclipse 4.30 (2023-12) | Eclipse 4.26 + (2022-12) |
6.7.0.202309050840-r | Eclipse 4.29 (2023-09) | Eclipse 4.26 + (2022-12) |
6.6.1.202309021850-r | Eclipse 4.26 + (2022-12) | |
6.6.0.202305301015-r | Eclipse 4.28 (2023-06) | Eclipse 4.26 + (2022-12) |
6.5.0.202303070854-r | Eclipse 4.27 (2023-03) | Eclipse 4.17 + (2020-09) |
6.4.0.202211300538-r | Eclipse 4.26 (2022-12) | Eclipse 4.17 + (2020-09) |
6.3.0.202209071007-r | Eclipse 4.25 (2022-09) | Eclipse 4.17 + (2020-09) |
6.2.0.202206071550-r | Eclipse 4.24 (2022-06) | Eclipse 4.17 + (2020-09) |
6.1.0.202203080745-r | Eclipse 4.23 (2022-03) | Eclipse 4.17 + (2020-09) |
6.0.0.202111291000-r | Eclipse 4.22 (2021-12) | Eclipse 4.17 + (2020-09) |
5.13.0.202109080827-r | Eclipse 4.21 (2021-09) | Eclipse 4.6 + (Neon) |
5.12.0.202106070339-r | Eclipse 4.20 (2021-06) | Eclipse 4.6 + (Neon) |
5.11.1.202105131744-r | Eclipse 4.6 + (Neon) | |
5.11.0.202103091610-r | Eclipse 4.19 (2021-03) | Eclipse 4.6 + (Neon) |
5.10.0.202012080955-r | Eclipse 4.18 (2020-12) | Eclipse 4.6 + (Neon) |
5.9.0.202009080501-r | Eclipse 4.17 (2020-09) | Eclipse 4.6 + (Neon) |
5.8.1.202007141445-r | Eclipse 4.6 + (Neon) | |
5.8.0.202006091008-r | Eclipse 4.16 (2020-06) | Eclipse 4.6 + (Neon) |
5.7.0.202003110725-r | Eclipse 4.15 (2020-03) | Eclipse 4.6 + (Neon) |
5.6.1.202002131546-r | Eclipse 4.6 + (Neon) | |
5.6.0.201912101111-r | Eclipse 4.14 (2019-12-18) | Eclipse 4.6 + (Neon) |
5.5.1.201910021850-r | Eclipse 4.6 + (Neon) | |
5.5.0.201909110433-r | Eclipse 4.13 (2019-09) | Eclipse 4.6 + (Neon) |
5.4.2.201908231537-r | Eclipse 4.6 + (Neon) | |
5.4.0.201906121030-r | Eclipse 4.12 (2019-06) | Eclipse 4.6 + (Neon) |
5.3.0.201903130848-r | Eclipse 4.11 (2019-03) | Eclipse 4.6 + (Neon) |
5.2.0.201812061821-r | Eclipse 4.10 (2018-12) | Eclipse 4.5 + (Mars) |
5.1.1.201809181055-r | Eclipse 4.5 + (Mars) | |
5.1.0.201809111528-r | Eclipse 4.9 (2018-09) | Eclipse 4.5 + (Mars) |
5.0.3.201809091024-r | Eclipse 4.4 + (Luna) | |
5.0.2.201807311906-r | Eclipse 4.4 + (Luna) | |
5.0.1.201806211838-r | Eclipse 4.4 + (Luna) | |
5.0.0.201806131550-r | Eclipse 4.8 (Photon) | Eclipse 4.4 + (Luna) |
4.11.0.201803080745-r | Eclipse 4.8 M6 (Photon M6) | Eclipse 4.4 + (Luna) |
4.10.0.201712302008-r | Eclipse 4.8 M5 (Photon M5) | Eclipse 4.4 + (Luna) |
4.9.1.201712030800-r | Eclipse 4.7.2 (Oxygen.2) and Eclipse 4.8 M4 (Photon M4) | Eclipse 4.4 + (Luna) |
4.9.0.201710071750-r | Eclipse 4.4 + (Luna) | |
4.8.0.201706111038-r | Eclipse 4.7 (Oxygen) | Eclipse 4.4 + (Luna) |
4.7.1.201706071930-r | Eclipse 4.4 + (Luna) | |
4.7.0.201704051617-r | Eclipse 4.4 + (Luna) | |
4.6.1.201703071140-r | Eclipse 4.6.3 (Neon.3), Eclipse 4.7 (Oxygen M6) | Eclipse 4.4 + (Luna) |
4.6.0.201612231935-r | Eclipse 4.7 (Oxygen M5) | Eclipse 4.4 + (Luna) |
4.5.0.201609210915-r | Eclipse 3.8.2/4.2.2 + (Juno) | |
4.4.1.201607150455-r | Eclipse 4.6.1, 4.6.2 (Neon.1, Neon.2) | Eclipse 3.8.2/4.2.2 + (Juno) |
4.4.0.201606070830-r | Eclipse 4.6 (Neon.0) | Eclipse 3.8.2/4.2.2 + (Juno) |
4.3.0.201604071810-r | Eclipse 3.8.2/4.2.2 + (Juno) | |
4.2.0.201601211800-r | Eclipse 4.6 M5 (Neon M5) | Eclipse 3.8.2/4.2.2 + (Juno) |
4.1.1.201511131810-r | Eclipse 4.5.2 (Mars.2) | Eclipse 3.8.2/4.2.2 + (Juno) |
4.1.0.201509280440-r | Eclipse 4.6 M2 (Neon M2) | Eclipse 3.8.2/4.2.2 + (Juno) |
4.0.3.201509231615-r | Eclipse 4.5.1 (Mars.1) | Eclipse 3.8.2/4.2.2 + (Juno) |
4.0.2.201509141540-r | Eclipse 3.8.2/4.2.2 + (Juno) | |
4.0.1.201506240215-r | Eclipse 3.8.2/4.2.2 + (Juno) | |
4.0.0.201506090130-r | Eclipse 4.5.0 (Mars) | Eclipse 3.8.2/4.2.2 + (Juno) |
3.7.1.201504261725-r | Eclipse 3.8.2/4.2.2 + (Juno) | |
3.7.0.201502260915-r | Eclipse 3.8.2/4.2.2 + (Juno) | |
3.6.2.201501210735-r | Eclipse 3.8.2/4.2.2 + (Juno) | |
3.6.1.201501031845-r | Eclipse 3.8.2/4.2.2 + (Juno) | |
3.6.0.201412230720-r | Eclipse 3.8.2/4.2.2 + (Juno) | |
3.5.3.201412180710-r | Eclipse 3.8.2/4.2.2 + (Juno) | |
3.5.2.201411120430-r | Eclipse 3.8.2/4.2.2 + (Juno) | |
3.5.1.201410131835-r | Eclipse 3.8.2/4.2.2 + (Juno) | |
3.5.0.201409260305-r | Eclipse 3.8.2/4.2.2 + (Juno), support for 3.8.2 was fixed see bug 438601 | |
3.4.2.201412180340-r | Eclipse 4.4.2 (Luna SR2) | Eclipse 4.2.2 + (Juno) |
3.4.1.201406201815-r | Eclipse 4.4.1 (Luna SR1) | Eclipse 4.2.2 + (Juno) |
3.4.0.201406110918-r | Eclipse 4.4 (Luna) | Eclipse 4.2.2 + (Juno) |
3.3.1.201403241930-r | Eclipse 3.8.2/4.2.2 + (Juno) | |
3.3.0.201403021825-r | Eclipse 3.8.2/4.2.2 + (Juno) | |
3.2.0.201312181205-r | 4.3.2 (Kepler SR2) | Eclipse 3.8.2/4.2.2 + (Juno) |
3.1.0.201310021548-r | Eclipse 3.8.2/4.2.2 + (Juno) | |
3.0.3.201309161630-r | 4.3.1 (Kepler SR1) | Eclipse 3.8.2/4.2.2 + (Juno) |
3.0.1.201307141637-r | 4.3.0 (Kepler) | Eclipse 3.8.2/4.2.2 + (Juno) |
2.3.1.201302201838-r | 3.8.2/4.2.2 (Juno SR2) | Eclipse 3.7.2+ (Indigo) (except EGit Import Support feature, which is optional) |
2.2.0.201212191850-r | 3.8.1/4.2.1 (Juno SR1) | Eclipse 3.7.2+ (Indigo) (except EGit Import Support feature, which is optional) |
2.1.0.201209190230-r | 3.8.1/4.2.1 (Juno SR1) | Eclipse 3.5.2+ (Galileo) (except EGit Import Support feature, which is optional) |
2.0.0.201206130900-r | 3.8/4.2 (Juno) | Eclipse 3.5.2+ (Galileo) (except EGit Import Support feature, which is optional) |
1.3.0.201202151440-r | 3.7.2 (Indigo SR2) | Eclipse 3.5.2+ (Galileo) |
1.2.0.201112221803-r | 3.7.2 (Indigo SR2) | Eclipse 3.5.2+ (Galileo) |
1.1.0.201109151100-r | 3.7.1 (Indigo SR1) | Eclipse 3.5.2+ (Galileo) |
1.0.0.201106090707-r | 3.7.0 (Indigo) | Eclipse 3.5.2+ (Galileo) |
- Starting from EGit 7.0 the minimum supported BREE is Java 17.
- Starting from EGit 6.0 the minimum supported BREE is Java 11.
- Starting from EGit 4.6 the minimum supported BREE is Java 8 and Eclipse 3.x support discontinues.
- Starting from EGit 4.0 the minimum supported BREE is Java 7
- Up to EGit 3.7 the minimum supported BREE is Java 5 though Java 6 or higher is recommended due to limitations in older Java versions.
Compatibility is on a feature by feature basis. Currently the major version related difference is in how Git handles file names with non-ASCII file names. Git for Windows 1.7.10 and later encodes filenames in UTF-8 which is compatible with JGit. Git on Mac, v1.7.12 can encode filenames in a way that is compatible with EGit and Git for Windows if core.precomposeunicode is set to true.
See this page Differences to Git
See this page Mapping Git Commands
Some, but not all configuration options/features in Git are available in EGit/JGit. Here is a summary, not yet complete describing some of these, including notable differences. Note that the set of EGit/JGit is not based off a particular Git version.
config | description |
---|---|
branch.autosetuprebase | supported |
branch.autosetupmerge | supported |
core.attributesFile | supported |
core.autocrlf | Since 2.0 supports true,false and input. See the tutorial for notes about making sure EGit picks up the configuration. |
core.bare | supported |
core.checkstat | supported (2.3) |
core.compression | zlib compression level |
core.excludesfile | Contains ignore rules, in addition to .gitignore |
core.filemode | supported |
core.ignorecase | not supported |
core.logallrefupdates | supported |
core.packindexversion | version 1 and 2 supported |
core.precomposeunicode | Ignore. See Bug 413390 |
core.repositoryformatversion | recognized, only "0" supported |
core.safecrlf | not supported |
core.worktree | supported in JGit, not EGit |
diff.algorithm | myers, histogram (default: histogram) |
pack.indexVersion | Default 2,-1 for older format |
user.email | supported |
user.name | supported |
Supported in JGit, but no EGit usually amounts to having no or strange behavior would one attempt to use it in the Eclipse IDE.
Notes: For those that can read the source, look at ConfigConstants.java for a hint on what options JGit recognizes. If it appears there, an option may be supported, but it may also mean for a few cases that JGit just looks for it and then explicitly tells the user the option is not supported. If it does not appear, it's most certainly up for grabs as a contribution. The file contains lots of config options that only applies to JGit (DFS, gerrit).
The following attributes are used by JGit/EGit. They can be used either
inside a checked-in .gitattributes
file, the file
$GIT_DIR/info/attributes
or in the file defined by the config constant
core.attributesFile
attribute | description |
---|---|
text | supported |
crlf | supported |
input | supported |
eol | supported |
binary | supported |
filter | supported |
Bug 342372 is meant to discuss problems regarding attributes.
JGit supports some environment variables. Do not set those for the Eclipse IDE. We'll list a few ones that may be used, but most apply only to using JGit from the command line.
variable | description |
---|---|
GIT_ALTERNATE_OBJECT_DIRECTORIES | supported |
GIT_AUTHOR_EMAIL | supported |
GIT_AUTHOR_NAME | supported |
GIT_CEILING_DIRECTORIES | supported. Also EGit may be benefited when used with automounted file systems |
GIT_DIR | supported |
GIT_INDEX_FILE | supported |
GIT_OBJECT_DIRECTORY | supported |
GIT_SSH | plink, tortoiseplink |
JGit does its own parsing of the ~/.ssh/config
file. It was written
when OpenSSH 7.5 was current and may miss out on features added in newer
OpenSSH version. It does not support the Match
and Include
directives. JGit does not validate when parsing like OpenSSH does,
instead it validates items when they are used.
Which directives from the ssh config file are actually used depends on
which SSH library is used. For instance, the JSch library uses only one
(the first) of the UserKnownHostFile
s, while the Apache MINA sshd
library uses all of them. Neither JSch nor Apache MINA sshd use the
GlobalKnownHostsFile
s. ProxyCommand
is not supported.
%-substitution is supported. With JSch, %u
(and thus also %C
) cannot
be replaced. (With the Apache MINA sshd library, it can.) %i
is not
handled; Java has no concept of a "user ID". %T
is always replaced by
NONE
.
Host name matching to find applicable directives follows the OpenSSH way, but JGit doesn't do host name canonicalization.
For documentation on the ~/.ssh/config
file see the
OpenBSD manual for ssh_config.
Eclipse lets the user define the SSH_HOME directory in the preferences
under Preferences→General→Network Connections→SSH2, field "SSH2 home".
Setting this to anything else but .ssh
in your user home directory is
going to be confusing, since it'll mean that JGit may use other settings
than your command-line utilities. Moreover, the JSch library always uses
~/.ssh/config
regardless of this setting. The Apache MINA sshd library
uses the directory as configured in Eclipse.
It is strongly recommended to set this path to .ssh
in your user
home directory.
It is possible to use PuTTY's key management capabilities on Windows for
EGit as well. For that you work you must install PuTTY and TortoiseGit.
Then set GIT_SSH environment variable to
c:\Programe Files\TortoiseGit\bin\TortoisePlink.exe
.
It is possible to store the SSH Key Passphrase in Mac's Keyring.
However. EGit's internal SSH client does not support this. Thus, in
order benefit from Keyring EGit must be configured to use the Mac
vanilla SSH agent. This is possible by setting the GIT_SSH environment
variable to /usr/bin/ssh
.
export GIT_SSH=/usr/bin/ssh
- For OSX Mavericks see this Stackoverflow question for how to set environment variable for applications like Eclipse.
- For OSX Yosemite see this Stackoverflow question for how to set environment variable for applications like Eclipse.