EGit v6.2.0.202206011217-rc1
[egit/eclipse.git] / README.md
blob5cabe0f87fcbc5884a55624fcb0c4089fd3240f5
1 # Eclipse Git Plugin
3 _EGit_ is a set of Eclipse plugins for working with Git repositories. It is
4 based on the _JGit_ library, which is a Git implementation in pure Java. This
5 package is licensed under the _EPL 2.0_. Please refer to the `LICENSE` file
6 for the complete license.
8 ## Components
10 This package is composed of the following major components.
12 ### Implementation
14 - __org.eclipse.egit__: Eclipse branding plugin for _EGit_.
15 - __org.eclipse.egit.core__: An Eclipse plugin providing an interface to
16     org.eclipse.jgit and support routines to allow processing in an
17     Eclipse workspace. It also supplies the team provider implementation.
18 - __org.eclipse.egit.gitflow__: bundle implementing support for the
19     [gitflow](https://nvie.com/posts/a-successful-git-branching-model/)
20     branching model.
21 - __org.eclipse.egit.gitflow.ui__: bundle implementing a user interface
22     for the gitflow branching model.
23 - __org.eclipse.egit.mylyn__: bundle integrating _EGit_ with _Eclipse Mylyn_
24     which provides integration for Eclipse with task tracking systems.
25 - __org.eclipse.egit.mylyn.ui__: bundle integrating _EGit_ user interface with
26     _Eclipse Mylyn_ task based user interface.
27 - __org.eclipse.egit.target__: Eclipse target platform providing EGit
28     3rd party dependencies for the build and for running EGit in Eclipse
29     workspace.
30 - __org.eclipse.egit.ui__: An Eclipse plugin providing the user interface on
31     top of org.eclipse.egit.core.
32 - __org.eclipse.egit.ui.importer__: An Eclipse plugin integrating the Eclipse
33     smart import wizard to improve importing projects from Git repositories.
35 ### Tests
37 - __org.eclipse.egit.core.junit__: Reusable classes used by _EGit_ tests
38 - __org.eclipse.egit.core.test__: Unit tests for org.eclipse.egit.core.
39 - __org.eclipse.egit.gitflow.test__: Unit tests for org.eclipse.egit.gitflow.
40 - __org.eclipse.egit.mylyn.ui.test__: UI tests for org.eclipse.egit.mylyn.ui.
41 - __org.eclipse.egit.ui.importer.test__: UI tests for org.eclipse.egit.ui.smartimport.
42 - __org.eclipse.egit.ui.test__: UI tests for org.eclipse.egit.ui.
44 ### Packaging
46 - __org.eclipse.egit.doc__: Documentation bundle packaging EGit documentation.
47     Raw documentation is written in the [wiki](https://wiki.eclipse.org/EGit/User_Guide).
48 - __org.eclipse.egit-feature__: Eclipse feature for installing the core
49     implementation bundles
50 - __org.eclipse.egit.gitflow-feature__: Eclipse feature for installing the
51     optional gitflow bundle.
52 - __org.eclipse.egit.mylyn-feature__: Eclipse feature for installing the EGit
53     task based interface integration.
54 - __org.eclipse.egit.repository__: Definitions for the EGit p2 repository
55     which can be used to install and upgrade EGit, includes all the features
56     and plugins from the JGit p2 repository.
57 - __org.eclipse.egit.source-feature__: Eclipse feature for installing EGit
58     source bundles to help debugging EGit in Eclipse.
60 ## Compatibility
62 - In general, EGit supports at least the latest two Eclipse releases.
63   For details, please see https://wiki.eclipse.org/EGit/FAQ
64 - JGit and EGit releases are versioned according to
65   [OSGi semantic versioning](https://www.osgi.org/wp-content/uploads/SemanticVersioning.pdf)
66 - Newer version of EGit may implement new functionality, remove
67   existing functions and change others without other notice than what
68   is written in the release notes, commit log and source files themselves.
70 ## Features
72 The following list is not complete, but it gives an overview of the
73 features:
75 - __org.eclipse.egit.core__
76   - Supplies an Eclipse team provider.
77   - Connect/disconnect the provider to a project.
78   - Search for the repositories associated with a project by
79     autodetecting the Git repository directories.
80   - Store which repositories are tied to which containers in the
81     Eclipse workspace.
82   - Tracks moves/renames/deletes and reflects them in the cache
83     tree.
84   - Resolves through linked containers.
86 - __org.eclipse.egit.ui__
87   - Connect team provider wizard panels.
88   - Connect to Git team provider by making a new repository.
89   - Connect to Git team provider by searching local filesystem
90     for existing repository directories.
91   - Team actions: track (add), untrack (remove), disconnect, show
92     history, compare version.
93   - Resource decorator shows file/directory state in the package
94     explorer and other views.
95   - Creating new commits or amending commits.
96   - View for staging changes (whole files and partial staging),
97     showing their differences and committing them.
98   - Graphical history viewer with the ability to compare versions
99     using eclipse built-in compare editor.
100   - Clone, push, pull, fetch
101   - Merge, rebase, cherry-pick
103 ## Missing Features
105 - signing support is incomplete
106   - verifying signed objects
107   - signing tags
108   - signing pushes
110 ## Support
112 Post questions or comments to the egit-dev@eclipse.org mailing list.
113 You need to be [subscribed](https://dev.eclipse.org/mailman/listinfo/egit-dev)
114 to post.
116 ## Contributing
118 See the [EGit Contributor Guide](https://wiki.eclipse.org/EGit/Contributor_Guide).
120 ## About Git
122 More information about Git, its repository format, and the canonical
123 C based implementation can be obtained from the [Git website](https://git-scm.com/).