Denna sida finns bara på engelska.
We have a Git server with Gitolite.
To use it the server must know your public key. Here you can read about how to create one. Then you need to tell it to the admin here in some way. You don't need to have a login on our system to access this, so if you do projects in collaboration with other people, their public keys are enough as well.
After that you can list what repositories you have access to with the command
ssh git@cl info
cl(computational linguistics) is an alias for the computer numerus. You can use any name for it, and on a computer that is not part of our GNU/Linux system you have to use a full name with the domain, like
cl.lingfil.uu.se
instead.
So for example the above command would be
ssh git@cl.lingfil.uu.se info
instead.
That may give a result like
R W testing R u/starback/fooThat would mean that you have Read and Write access to the first repository and just Read access to the second. Then you can clone a repository like this:
git clone git@cl:testing
New repositories – by asking
If a project at the department will use Git, you can ask admin to set it up. You need to state a name and who should have write access and who should have read access to the repository.
You can use catch-all terms like anyone in the computational
linguistics group
,
anyone (who has access to our git server)
etc. if you want.
Consider being less restrictive than what you first think. Even if only two people will be working on a project, maybe it will be better to give everyone in the group write access anyway. Then you don't have to ask for a change when later a third person joins the project, and it will be possible for someone who is just reading it to fix an obvious typo they see. It is not likely that people will sabotage your work, and if they do one advantage of version control is that you can undo it.
Wild repositories
New repositories can also be created on the fly, without asking.
If the output from ssh git@cl info
includes a line
C u/CREATOR/\w.*that means you can create wild repositories with names that follow that pattern; that is start with
u/
and then your username.
If you work here you are supposed to have that right. If you don't,
ask admin to fix that.
Then you can just clone a non-existing repository with a matching
name and it will be created. Other users won't have any access to
the new repository unless you give it to them. The following example
shows how a user huey
creates a new repository and
then adds write access to two users (dewey
and louie
) and read access to everyone.
(The group @all
means everyone.)
Finally current permissions are listed.
$ git clone git@cl:u/huey/my-test
Cloning into 'my-test'...
Initialized empty Git repository in /opt/site/gitolite3/repositories/u/huey/my-test.git/
warning: You appear to have cloned an empty repository.
$ ssh git@cl perms u/huey/my-test + WRITERS dewey
$ ssh git@cl perms u/huey/my-test + WRITERS louie
$ ssh git@cl perms u/huey/my-test + READERS @all
$ ssh git@cl perms u/huey/my-test -l
READERS @all
WRITERS dewey
WRITERS louie
There is more help available with
ssh git@cl perms -h
.