Cloning a Remote GitHub Repository

45 minutes
  • 3 Learning Objectives

About this Hands-on Lab

Working with remote Git repositories is a key concept in distributed source control. Github is one of the most popular public repository sites and you will find yourself working with it regularly. At the completion of this activity, the student will understand how to clone a remote repository from GitHub for use locally.

Learning Objectives

Successfully complete this lab by achieving the following learning objectives:

Create Local Repository Location

The student is asked to create a world read/write/executable directory called /mnt/baserepo to contain a cloned repository. This can be accomplished when logged in as the ‘cloud_user’ with the following commands:

sudo mkdir /mnt/baserepo

sudo chmod 777 /mnt/baserepo
OR
sudo chmod a+rwx /mnt/baserepo
Clone Remote Repository to Local Location

You are asked to clone a remote repository at https://github.com/linuxacademy/content-source-control-git.git into the recently created /mnt/baserepo directory. This cloning can be completed with the command:

cd /mnt/baserepo

git clone https://github.com/linuxacademy/content-source-control-git.git .

Note: In this case the ‘.’ is very important since it will clone the repo contents in the /mnt/baserepo directory. Without it, it would clone the repo in a new directory matching the repository name.

Clones of LOCAL Repository Made for Service Account

The student is asked to make a clone of the repository, but use the LOCAL repository as the repository to base the user clone on. This is done by adding a special flag to the clones so it points to the local origination rather than the remote. This is done via:

mkdir experiment
cd experiment

git clone --local /mnt/baserepo .

NOTE: It is important to use the ‘.’ in the cloning so that a new subdirectory is not created.

Additional Resources

One of the developers in your organization is going to begin working on an experimental application to augment the functionality of the new company Web-based API. Since Git is currently the company standard for source control in your organization, he will begin by working on a relatively lightly populated repository made available for them on Github.

You have been provided with the credentials and access information to the CentOS 7 server that he will be using to work on his code. He will be doing slightly different work to begin with so he will need his own initial copy of the remote repository. The service account 'cloud_user' you have been provided is intended to be what is used to clone the repository and to work on this project. Create a directory called '/mnt/baserepo'. Clone the GitHub repository at the URL https://github.com/linuxacademy/content-source-control-git.git into this new directory.

Clone the LOCAL repository (the one now at /mnt/baserepo) in the service account (cloud_user) home directory within a directory called 'experiment'. Make sure that the clone knows it is cloned locally so that the entire repository points to the local copy as the source.

Once you have completed the clones and verify they exist and are seen as repositories by Git, you can turn the system over for his use.

What are Hands-on Labs

Hands-on Labs are real environments created by industry experts to help you learn. These environments help you gain knowledge and experience, practice without compromising your system, test without risk, destroy without fear, and let you learn from your mistakes. Hands-on Labs: practice your skills before delivering in the real world.

Sign In
Welcome Back!

Psst…this one if you’ve been moved to ACG!

Get Started
Who’s going to be learning?