Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Table of Contents

...

The following sections provide instructions for SDC users on setting up GitLab repositories for
committing and sharing their code and any other documents.
GitLab provides an organizational structure of users and repositories managed respectively via
“groups” and “projects” to promote collaboration among teams of SDC users. Groups contain
members with different access levels to their project repositories based on the assigned roles:

Role

Read-Only

Read/Write

Guest

(tick)

Reporter

(tick)

Developer

(tick)

Maintainer

(tick)

GitLab Features:

  • Share code with specific team members, your entire team, or different research teams that are also using the SDC.

  • Simplified collaboration with shared read/write access.

  • Manage multiple repositories that are organized and structured in a logical manner.

  • Version control and source code management including:

    • File locking to help prevent conflicts

    • Users can work from their local copy of the code

    • Users can branch code to make changes and then quickly merge it after approval

...

  1. Your key authentication credentials are, by default, stored in a hidden folder named “.ssh.”
    You’ll need to ensure this folder exists in your home directory before creating your key.
    This can be done using Git Bash (for Windows), as belowCMD Prompt.

    1. Open the Git Bash application from the Git Extensions CMD Prompt application as shown in the picture below.

      Under Git Extensions Tools Tab, click on ‘Git Bash’ and hit enter

      Image Removedimage-20240730-195938.pngImage Added


      b. The

      Git Bash terminal Image Removed

      CMD Prompt opens and should be active within your home directory.
      The title bar of the terminal window will display MINGW64/c/Users/<your-SDC-username>,
      where <your-SDC-username> is your actual SDC user credential.



      c. Use

      Git Bash

      CMD Prompt to check if the .ssh folder already exists in your home directory:
      At the

      $

      prompt, type the following command and then hit enter.

      This will list all objects in your home directory.

      Image Removed
      Code Block
      ls -a
      dir     
      image-20240730-200220.pngImage AddedImage Removed


      d. Confirm whether you see the .ssh folder listed in the results:



      e. If not found, then create the .ssh folder:
      At the prompt, type the following and then hit enter.

      Code Block
      mkdir .ssh

      f. Confirm the .ssh folder is now created:
      At the prompt, type the following and then hit enter.

      Code Block
      ls -a
      dir


  2. Next, use Git Bash CMD Prompt to generate a new SSH key and store it in the .ssh folder.

    a. Generate the key pair:
    At the prompt, type the following command* and then hit enter

    Code Block
    ssh-keygen -t rsa -b 4096 -C "<your-SDC-username@dot.gov>"


    *NOTE: Be sure to replace <your-SDC-username@dot.gov> with your SDC email address,
    or other email address/ identifier of your choosing.

    b. It will output the following message: “Generating public/private rsa key pair.

    c. It will then ask you where to save the file with the prompt “Enter file in which to save the key:
    At the prompt, type the following and hit enter.

    Code Block
    C:\Users\<your-SDC-username>\.ssh\id_rsa


    d. It will also ask you to enter a passphrase with the following 2 prompts.
    • “Enter passphrase (empty for no passphrase):”
    • “Enter same passphrase again:”
    Hit the Enter key each time (no need to enter anything else) to accept the defaults.

    e. The following messages confirm the new SSH key is now stored in the .ssh folder.
    • “Your identification has been saved in C:\Users\<SDCusername>\.ssh\id_rsa.”
    • “Your public key has been saved in C:\Users\<SDCusername>\.ssh\id_rsa.pub.”

    NOTE:  Your SSH key pair is comprised of two files, which have been saved under the .ssh folder in your home directory ( C:/Users/<your-SDC-username>/.ssh/ ) .  
    The private identification is saved in the id_rsa file and the public part of the key is saved in the id_rsa.pub file.

3. You now need to provide the ‘public’ part of this key to GitLab:
In the Git Bash CMD Prompt terminal, type the following command at the prompt, and then hit enter.

...

5. To test whether your SSH key was added correctly, type the following command, in your Git Bash CMD Prompt terminal,
and then hit enter:

...


a. The first time you connect to GitLab via SSH, you will be asked to verify the authenticity
of the GitLab host you are connecting to. Type “yes” to add the SDC internal GitLab to
the list of trusted hosts.

...

b. You should see the “Welcome to GitLab, @SDCusername!” message.
NOTE: Once added to the list of known hosts, you will not be asked to validate the
authenticity of SDC internal GitLab’s host again. Run the above command once more,
and you should only receive a “Welcome to GitLab, @SDCusername!” message.

...

  1. In your browser in SDC, go to https://gitlab.prod.sdc.dot.gov and navigate to the repository you wish to clone.

  2. Clone > Clone with SSH > Copy URL

  3. Back in the Git Bash application, first `cd ~/` to make sure you are in your home directory. Then type `git clone`, then right click and paste in what you copied from GitLab:

  4. You now have the repository cloned to C:\Users\{yourusername}\{repository}

  5. As always, git pull when you start up your workstation. Do work, then git push at least once at the end of your day. The GitLab service is backed up, and you should treat anything on your Windows workstation just like you would on a C:\ drive on laptop.

🤔 Git commands to remember 

...