Provides examples and code snippets for the JGit Java Git implementation
Java
1,804
371 commits
updated Sep 25, 2026
Provides examples and code snippets for the JGit Java Git implementation.
The JGit framework is rich and diverse, it has two layers, a low-level api and a higher-level set of porcelain commands. This can be a bit intimidating at first as there are lots of classes, some of which are not relevant for most tasks.
This project tries to provide a collection of ready-to-run snippets which provide a quick start for building functionality using JGit.
Please make sure to take a look at the nicely written introduction and also use the existing JavaDoc and the User Guide as well, as they are well done and provide detailed information and a general overview of JGit respectively.
Note: Please use sites such as http://stackoverflow.com for general questions about JGit usage, not issues in this project. Issues should be used for problems with snippets and suggestions of missing snippets. Snippets from good answers on stackoverflow can then be included here, naturally.
You will need at least JDK 17 for JGit 7.0 and newer.
git clone https://github.com/centic9/jgit-cookbook.git
mvn dependency:sources eclipse:eclipse package
./gradlew eclipse check
Each snippet is a small standalone Java application, so you can simply
import the project into your favourite IDE and execute the snippets there.
There is a standalone sub-project in directory httpserver which starts up a simple HTTP Git server based on the JGit GitServlet.
It creates a small demo-repository and serves this repository on any URL beneath /repo.
Usage:
Import the project in your IDE and start up the Main application, see the Comments in the code for more details.
Another simple way to start the sample-server is to run ./gradlew run in the httpserver-directory.
When the server is running, you can use the following to fetch and push a single sample repo
git clone http://localhost:8080/repo/some_repo
git: protocol: https://github.com/orange-cloudfoundry/cf-ops-automation-broker/blob/8bcb286652fae2b8fe2ccc9f67c53cb0272bcbd0/cf-ops-automation-broker-core/src/main/java/com/orange/oss/cloudfoundry/broker/opsautomation/ondemandbroker/git/GitServer.javaIf you find these snippets useful and would like to support it, you can Sponsor the author
The following sources were used to build the snippets:
Ruby Build
Please note that the list of snippets is not yet complete, probably never will. If you are missing things or have suggestions how to improve or add snippets, please either send pull requests or create issues.
Copyright 2013-2023 Dominik Stadler
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
609 followers · starred Mar 2015
341 followers · starred Sep 2019
93 followers · starred Dec 2016
238 followers · starred Dec 2022
Provides examples and code snippets for the JGit Java Git implementation
Java
1,804
371 commits
updated Sep 25, 2026
Provides examples and code snippets for the JGit Java Git implementation.
The JGit framework is rich and diverse, it has two layers, a low-level api and a higher-level set of porcelain commands. This can be a bit intimidating at first as there are lots of classes, some of which are not relevant for most tasks.
This project tries to provide a collection of ready-to-run snippets which provide a quick start for building functionality using JGit.
Please make sure to take a look at the nicely written introduction and also use the existing JavaDoc and the User Guide as well, as they are well done and provide detailed information and a general overview of JGit respectively.
Note: Please use sites such as http://stackoverflow.com for general questions about JGit usage, not issues in this project. Issues should be used for problems with snippets and suggestions of missing snippets. Snippets from good answers on stackoverflow can then be included here, naturally.
You will need at least JDK 17 for JGit 7.0 and newer.
git clone https://github.com/centic9/jgit-cookbook.git
mvn dependency:sources eclipse:eclipse package
./gradlew eclipse check
Each snippet is a small standalone Java application, so you can simply
import the project into your favourite IDE and execute the snippets there.
There is a standalone sub-project in directory httpserver which starts up a simple HTTP Git server based on the JGit GitServlet.
It creates a small demo-repository and serves this repository on any URL beneath /repo.
Usage:
Import the project in your IDE and start up the Main application, see the Comments in the code for more details.
Another simple way to start the sample-server is to run ./gradlew run in the httpserver-directory.
When the server is running, you can use the following to fetch and push a single sample repo
git clone http://localhost:8080/repo/some_repo
git: protocol: https://github.com/orange-cloudfoundry/cf-ops-automation-broker/blob/8bcb286652fae2b8fe2ccc9f67c53cb0272bcbd0/cf-ops-automation-broker-core/src/main/java/com/orange/oss/cloudfoundry/broker/opsautomation/ondemandbroker/git/GitServer.javaIf you find these snippets useful and would like to support it, you can Sponsor the author
The following sources were used to build the snippets:
Ruby Build
Please note that the list of snippets is not yet complete, probably never will. If you are missing things or have suggestions how to improve or add snippets, please either send pull requests or create issues.
Copyright 2013-2023 Dominik Stadler
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
609 followers · starred Mar 2015
341 followers · starred Sep 2019
93 followers · starred Dec 2016
238 followers · starred Dec 2022