Primary tabs
Reference
Porcelain API
While JGit contains a lot of low level code to work with Git repositories, it also contains a higher level API that mimics some of the Git porcelain commands in the org.eclipse.jgit.api package.
Most users of JGit should start here.
AddCommand (git-add)
AddCommand allows you to add files to the index and has options available via its setter methods.
- addFilepattern()
Here's a quick example of how to add a set of files to the index using the porcelain API.
Git git = new Git(db); AddCommand add = git.add(); add.addFilepattern("someDirectory").call();
CommitCommand (git-commit)
CommitCommand allows you to perform commits and has options available via its setter methods.
- setAuthor()
- setCommitter()
- setAll()
Here's a quick example of how to commit using the porcelain API.
Git git = new Git(db); CommitCommand commit = git.commit(); commit.setMessage("initial commit").call();
TagCommand (git-tag)
TagCommand supports a variety of tagging options through its setter methods.
- setName()
- setMessage()
- setTagger()
- setObjectId()
- setForceUpdate()
- setSigned() - not supported yet, will throw exception
Here's a quick example of how to tag a commit using the porcelain API.
Git git = new Git(db); RevCommit commit = git.commit().setMessage("initial commit").call(); RevTag tag = git.tag().setName("tag").call();
LogCommand (git-log)
LogCommand allows you to easily walk a commit graph.
- add(AnyObjectId start)
- addRange(AnyObjectId since, AnyObjectId until)
Here's a quick example of how get some log messages.
Git git = new Git(db); Iterable<RevCommit> log = git.log().call();
MergeCommand (git-merge)
TODO
Ant Tasks
JGit has Ant tasks for some common tasks contained in the org.eclipse.jgit.ant bundle.
To use these tasks:
<taskdef resource="org/eclipse/jgit/ant/ant-tasks.properties"> <classpath> <pathelement location="path/to/org.eclipse.jgit.ant-VERSION.jar"/> <pathelement location="path/to/org.eclipse.jgit-VERSION.jar"/> <pathelement location="path/to/jsch-0.1.44-1.jar"/> </classpath> </taskdef>
This would then provide git-clone, git-init and git-checkout tasks.
git-clone
<git-clone uri="http://egit.eclipse.org/jgit.git" />
The following attributes are required:
- uri: the uri to clone from
The following attributes are optional:
- dest: the destination to clone to (defaults to use a human readable directory name based on the last path component of the uri)
- bare: true/false/yes/no to indicate if the cloned repository should be bare or not (defaults to false)
- branch: the initial branch to check out when cloning the repository (defaults to HEAD)
git-init
<git-init />
The following attributes are optional:
- dest: the path where a git repository is initialized (defaults $GIT_DIR or the current directory)
- bare: true/false/yes/no to indicate if the repository should be bare or not (defaults to false)
git-checkout
<git-checkout src="path/to/repo" branch="origin/experimental" />
The following attributes are required:
- src: the path to the git repository
- branch: the initial branch to checkout
The following attributes are optional:
- createbranch: true/false/yes/no to indicate whether the branch should be created if it does not already exist (defaults to false)
- force: true/false/yes/no: if true/yes and the branch with the given name already exists, the start-point of an existing branch will be set to a new start-point; if false, the existing branch will not be changed (defaults to false)
git-add
TODO