Overview
Gitblit is an open-source, integrated pure Java stack for managing, viewing, and serving Git repositories.
Its designed primarily as a tool for small workgroups who want to host Git repositories on a Windows machine. Having said that, it works equally well on any standard Linux distribution.
Current Release
%VERSION% (go|war) based on %JGIT% (*%BUILDDATE%*)
sources @ Github
Design Principles
- Keep It Simple, Stupid
- Offer useful features for serving Git repositories. If feature is complex, refer to #1.
- All dependencies must be retrievable from a publicly accessible Maven repository.
This is to ensure authenticity of dependencies and to keep the Gitblit distribution svelte.
Gitblit Features
- JGit SmartHTTP servlet
- Browser and git client authentication
- Four repository access control configurations and a Read-Only flag
Anonymous View, Clone & Push
Authenticated Push
Authenticated Clone & Push
Authenticated View, Clone & Push
Freeze repository (i.e. deny push, make read-only)
- Gitweb inspired UI
- Administrators may create, edit, rename, or delete repositories through the web UI
- Administrators may create, edit, rename, or delete users through the web UI
- Repository Owners may edit repositories through the web UI
- Git-notes support
- Branch metrics (uses Google Charts)
- HEAD and branch RSS feeds
- Blame annotations view
- Dates can optionally be displayed using the browser's reported timezone
- Display of Author and Committer email addresses can be disabled
- Case-insensitive searching of commit messages, authors, or committers
- Dynamic zip downloads feature
- Markdown file view support
- Syntax highlighting for popular source code types
- Customizable regular expression substitution for commit messages (i.e. bug or code review link integration)
- Single text file for users configuration
- Optional utility pages
Docs page which enumerates all Markdown files within a repository
Ticgit ticket pages (based on last MIT release bf57b032 2009-01-27)
Gitblit-Go Features
- Out-of-the-box integrated stack requiring minimal configuration
- Automatically generates a self-signed certificate for https communications
- Single text file for server configuration
Limitations
- HTTP/HTTPS are the only supported protocols
- Access controls are not path-based, they are repository-based
- Only Administrators can create, rename or delete repositories
Caveats
- Gitblit may eat your data. Use at your own risk.
- Gitblit may have security holes. Patches welcome. :)
Todo List
- Code documentation
- Unit testing
- Update Build.java to JGit 1.0.0, when its released
Idea List
- Consider clone remote repository feature
- Stronger Ticgit read-only integration
- activity/timeline
- query feature with paging support
- change history
- Ticgit write integration
- Blob page improvements
- view images
- view other binary files (pdf, doc, etc)
- Markdown editing feature
License
Gitblit is distributed under the terms of the Apache Software Foundation license, version 2.0
Inspirations
Architecture

Bundled Dependencies
The following dependencies are bundled with Gitblit.
Downloaded Dependencies
The following dependencies are automatically downloaded by Gitblit-Go (or already bundled with the WAR) from the Apache Maven repository and from the Eclipse Maven repository when Gitblit is launched for the first time.
Other Build Dependencies
Building from Source
Eclipse is recommended for development as the project settings are preconfigured.
Additionally, Google CodePro AnalytiX, eclipse-cs, FindBugs, and EclEmma are recommended development tools.
- Clone the git repository from Github.
- Import the gitblit project into your Eclipse workspace.
There will be lots of build errors.
- Using Ant, execute the
build.xml
script in the project root.
This will download all necessary build dependencies and will also generate the Keys class for accessing settings.
- Select your gitblit project root and Refresh the project, this should correct all build problems.
- Using JUnit, execute the
com.gitblit.tests.GitBlitSuite
test suite.
This will clone some repositories from the web and run through the unit tests.
- Review the settings in
gitblit.properties
in your project root.
- By default, the git.repositoriesFolder points to the repositories cloned by the test suite.
- If running on Linux you may have to change the served port(s) to > 1024 unless you are developing as the root user.
- Execute the com.gitblit.Launcher class to start Gitblit.
Contributing
Patches welcome in any form.
Contributions must be your own original work and must licensed under the Apache License, Version 2.0, the same license used by Gitblit.