GitLab Developer FAQ: Difference between revisions

From pCT
m (→‎Create repository clone: adjusting file name)
Line 47: Line 47:


'''Note:'''  insert <span style="color:yellow; background:red; bold"> ''your token number''</span>
'''Note:'''  insert <span style="color:yellow; background:red; bold"> ''your token number''</span>
== Working with forks ==
=== I have a clone of the main repository and want to connect it now to my fork ===
'''Note:''' <span style="color:yellow; background:red">'''User.Space'''</span> needs to be replaced by your user space, see the link in the web interface.
replace <span style="color:white; background:green">'''pct-online'''</span> by repository you are working with.
Check the remotes of your repository
    git remote -v
Should show you something like
    origin git@git.app.uib.no:pct/pct-online.git (fetch)
    origin git@git.app.uib.no:pct/pct-online.git (push)
Since ''origin'' should refer to your development proxy, we first rename the current ''origin'' to ''upstream'':
    git remote rename origin upstream
Add the fork as the new ''origin'':
    git remote add origin git@git.app.uib.no:<span style="color:red">User.Space</span>/<span style="color:green">pct-online</span>.git
Synchronize with the fork
    git remote update
Make your branches to track the branches of your fork, e.g. for the ''dev'' branch:
    git checkout dev
    git branch --set-upstream-to origin/dev
Check the remotes:
    git remote -v
With new result:
    origin git@git.app.uib.no:User.Space/pct-online.git (fetch)
    origin git@git.app.uib.no:User.Space/pct-online.git (push)
    upstream git@git.app.uib.no:pct/pct-online.git (fetch)
    upstream git@git.app.uib.no:pct/pct-online.git (push)

Revision as of 21:30, 9 February 2021

Main Page -> Documentation -> Gitlab Developer FAQ

This is a collection of frequently asked Gitlab questions for developers

Please edit this page and add your question, or send email to pCT@uib.no

Authentication

In order to clone non-public repositories and do synchronization, an authentication method is required. It is recommended to use SSH keys

Register SSH key

  1. Login to https://git.app.uib.no
  2. go to User settings -> SSH Keys (https://git.app.uib.no/-/profile/keys)
  3. paste public SSH key from your .ssh folder, something like id_*.pub
  4. select optionally a title and expiration date
  5. click Add

Create access token

  1. Login to https://git.app.uib.no
  2. go to User settings -> Access Tokens (https://git.app.uib.no/-/profile/personal_access_tokens)
  3. Choose name and expiration date and scopes
  4. click Create personal access token
  5. Store the token in a safe place or configure the relevant application for accessing the repository with this token immediately

Hints:

  • Create access tokens only for the scope with the minimal access permissions required for your purpose
  • Keep in mind: the token is only visible in the web interface after creation, you can not get it later
  • Unused tokens should be revoked as soon as possible

Create repository clone

A repository clone is your work copy, it is created using the git clone-command.

Find the links for the repository to be cloned

Pct-online-clone-menu.png

Clone using SSH

An SSH key needs to be configured -> Gitlab Developer FAQ#Register SSH key

  git clone git@git.app.uib.no:pct/pct-online.git

Note: this is an example for the pct-online repository

Clone using Access Token

An access token needs to be configured -> Gitlab Developer FAQ#Create access token

   git clone https://gitlab-ci-token:your-token-number@git.app.uib.no/pct/pct-online

Note: insert your token number

Working with forks

I have a clone of the main repository and want to connect it now to my fork

Note: User.Space needs to be replaced by your user space, see the link in the web interface. replace pct-online by repository you are working with.

Check the remotes of your repository

   git remote -v

Should show you something like

   origin	git@git.app.uib.no:pct/pct-online.git (fetch)
   origin	git@git.app.uib.no:pct/pct-online.git (push)

Since origin should refer to your development proxy, we first rename the current origin to upstream:

   git remote rename origin upstream

Add the fork as the new origin:

   git remote add origin git@git.app.uib.no:User.Space/pct-online.git

Synchronize with the fork

   git remote update

Make your branches to track the branches of your fork, e.g. for the dev branch:

   git checkout dev
   git branch --set-upstream-to origin/dev

Check the remotes:

   git remote -v

With new result:

   origin	git@git.app.uib.no:User.Space/pct-online.git (fetch)
   origin	git@git.app.uib.no:User.Space/pct-online.git (push)
   upstream	git@git.app.uib.no:pct/pct-online.git (fetch)
   upstream	git@git.app.uib.no:pct/pct-online.git (push)