From Fedora Project Wiki

< User:Tmz

Revision as of 23:06, 3 October 2008 by Tmz (talk | contribs) (Move the Repository description note to the end, with the gitweb section.)

BETA git hosting support now has support for hosting git repositories including accessing them via the git:// protocol for anonymous downloads as well as providing gitweb. This should be considered beta.

Create a public_git directory in your home directory on

ssh "mkdir ~/public_git"

Put your git repository in ~/public_git

The repository directory name must end with .git
Gitweb will not list repos that do not end in .git.

For example, here is how to create a repository on your local system and upload it:

mkdir repo.git
cd repo.git
git init --bare
touch git-daemon-export-ok
cd ..
scp -r repo.git
Repository access
Without git-daemon-export-ok, your repository won't be available to anyone via the git:// protocol.
Non-bare repositories
While non-bare repositories will work, they are generally discouraged for use as remote repositories. But if you use a non-bare repository, you should place the git-daemon-export-ok file in the toplevel git dir, e.g. ~/public_git/your_repo.git/git-daemon-export-ok

Pushing to your repository

At this point your new repository is still empty. You can push to it from a local repository with a little setup:

cd /path/to/local/repo
git remote add fedorapeople
git push --mirror fedorapeople
Allowing others to push
You can allow other users to push to your repository using extended acls (see "man setfacl" for details). However, if you have many others working on your project, using Fedora Hosted is strongly preferred.

Cloning your repository

To clone your repository, use a command similar to:

git clone git://

It is also possible to clone your project via the http:// protocol. In order for this to work, you must arrange to have git-update-server-info run whenever you update your repository. Typically, this is done with a post-update hook script. However, the user home directories on are mounted with the noexec option, which prevents the script from running. Instead, you may create a symbolic link to git-update-server-info in the hooks directory of your repository:

cd ~/public_git/repo.git/hooks
ln -svbf /usr/bin/git-update-server-info post-update

You can clone your repository over http:// with a command similar to:

git clone

Browse your project via gitweb

You can see your project listed in gitweb once the project list updates (hourly). Note that this URL may change.

Repository description
You can set the description for the repository that is displayed in gitweb by editing the description file in your repository.