Git

From ITSwiki
Jump to: navigation, search

To use git for your own and team projects, DTU Compute is providing a GitLab instance with all the benefits it offers. Primarily a place for your repositories, other features are or will become available.


Login with your DTU credentials here: https://lab.compute.dtu.dk


Add your public keys

To access your private repositories, add your public SSH-key to your GitLab account.
If you don't have a SSH-key, on Linux/MacOS you can use this command in your favourite shell:

ssh-keygen

Windows 10 has a native SSH client; in PowerShell create a key pair with:

ssh-keygen.exe

Press Enter 3 times to create a password-less key pair, located in:

$HOME/.ssh/id_rsa
$HOME/.ssh/id_rsa.pub

The file id_rsa.pub is your public key that you can share with other systems, including DTU Compute's GitLab.


To add your public key in GitLab, follow these steps after login:


1) In the top-right corner click your user icon
2) Click Settings and on the left-hand panel click SSH Keys
3) Follow the instructions from here


Give access to other users

To share a repository with other users, the user you want to add has to login to GitLab first. Then you can find and add them as a member of your project.


1) Select your project you want to share
2) In the left-hand panel select Settings -> Members
3) Under Select members to invite search for the username


Project Visibility & License

New repositories are per default set to be private which means that only you, and members that you allow, are able to see and work with the repository. This can be changed to either internal (lab.compute.dtu.dk members) or public (visible to the whole internet). To change the visibility of a repository:


1) Select Settings -> General
2) Expand Visibility, project features, permissions and change Project visibility


NOTE: Please be aware that public repositories can be found in the /public access directory (https://lab.compute.dtu.dk/public). If you have projects here that are not meant to be public, change the visibilty of your repository!

If you do want your project to be public, we ask that you add a license. This can be done easily by clicking the Add license link beneath the project name in your project homepage.


Mirroring repositories

It may make sense to mirror a repository to/from an external source such as Github. For instructions read:
https://lab.compute.dtu.dk/help/user/project/repository/repository_mirroring.md


Migrating from Gitolite to GitLab

Our Gitolite server (git.compute.dtu.dk) is considered deprecated, and everyone with active repositories there are encouraged to migrate. This can be done from a local PC with a cloned repo.

Migrating a repo requires a bit of manual work, but not much. What it basically comes down to, is moving the origin from Gitolite to GitLab. Here are the steps described as simple as possible:

  • Make sure your locally cloned repo - incl. all branches, tags, etc. - is up to date with origin
  • Create a new repository on GitLab using the same name as the repo you want to move
  • Add a new remote using the URL from GitLab, and push everything to this remote
  • Remove all references to the old remote (Gitolite)
  • Rename the new remote to origin
  • In GitLab add the users you want to share the project with.
  • Users may want to clone the repo anew rather than change origin manually.

Steps described

As is shown above, it is pretty straight forward to move a repository, but as always the details are important. Here the steps will be described a bit more together with the commands to use.

First make sure that your local repository clone is up to date with origin (the gitolite server), and make sure that you checkout all remote branches locally.

git fetch origin
git branch -a
git checkout -b feature1 origin/feature1

Create the new replacement repository at https://lab.compute.dtu.dk and copy the SSH clone URL - eg. git@lab.compute.dtu.dk:user/project2.git - to add a new remote in your local repo, and push all branches to this new remote, here called "new-origin".

git remote add new-origin git@lab.compute.dtu.dk:user/project2.git
git push --all new-origin
git push --tags new-origin # if you use tags

Delete the reference to the old origin and make the new remote the origin.

git remote rm origin
git remote rename new-origin origin

Your repository is now migrated to GitLab.


More to come