User:Tmz/How to use git on fedorapeople.org

= fedorapeople.org git hosting support =

fedorapeople.org 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 directory on fedorapeople.org
ssh your_fedora_username@fedorapeople.org "mkdir ~/public_git"

Put your git repository in
As an example, here is one method to create an empty 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 your_fedora_username@fedorapeople.org:public_git/

This creates a bare repository (i.e. a repository that has no working directory). It contains just the files that are part of the  directory of a non-bare git repository (the kind most users are accustomed to seeing).

Pushing to your repository
At this point your new repository is still empty. To push changes from a local repository:

cd /path/to/local/repo git remote add fedorapeople your_fedora_username@fedorapeople.org:public_git/repo.git git push --mirror fedorapeople

This creates a mirror of your local repository. All of the branches and tags in the local repository will be pushed to the fedorapeople repository.

If you only want to push selected branches, amend the  example. For example, to push only your local master branch:

git push fedorapeople master

Cloning your repository
To clone your repository, use a command similar to:

git clone git://fedorapeople.org/~your_fedora_username/repo.git

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

ssh ~your_fedora_username@fedorapeople.org 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 http://your_fedora_username.fedorapeople.org/git/repo.git/

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.