The repository for the assignment is public and Github does not allow the creation of private forks for public repositories.
The correct way of creating a private fork by duplicating the repo is documented here.
For this assignment the commands are:
-
Create a bare clone of the repository. (This is temporary and will be removed so just do it wherever.)
git clone --bare git@github.com:usi-systems/easytrace.git
-
Create a new private repository on Github and name it
easytrace
.If you are unable to create a private repo, you can request unlimited private repos as a studant by getting the student pack from Github.
-
Mirror-push your bare clone to your new
easytrace
repository.Replace
<your_username>
with your actual Github username in the url below.cd easytrace.git git push --mirror git@github.com:<your_username>/easytrace.git
-
Remove the temporary local repository you created in step 1.
cd .. rm -rf easytrace.git
-
You can now clone your
easytrace
repository on your machine (in my case in thecode
folder).cd ~/code git clone git@github.com:<your_username>/easytrace.git
-
If you want, add the original repo as remote to fetch (potential) future changes. Make sure you also disable push on the remote (as you are not allowed to push to it anyway).
git remote add upstream git@github.com:usi-systems/easytrace.git git remote set-url --push upstream DISABLE
You can list all your remotes with
git remote -v
. You should see:origin git@github.com:<your_username>/easytrace.git (fetch) origin git@github.com:<your_username>/easytrace.git (push) upstream git@github.com:usi-systems/easytrace.git (fetch) upstream DISABLE (push)
When you push, do so on
origin
withgit push origin
.When you want to pull changes from
upstream
you can just fetch the remote and rebase on top of your work.git fetch upstream git rebase upstream/master
And solve the conflicts if any
Adding private repo to Vagrant VM:
-
Make your
easytrace
repo available in your Vagrant VM by adding the following to your VagrantfileReplace
"~/code/easytrace"
with your local path to theeasytrace
repo.config.vm.synced_folder "~/code/easytrace", "/easytrace"
-
Reload your VM to enable the synced folder (in the folder containing your Vagrant file).
vagrant reload
-
The
easytrace
repo is available at/easytrace
once you ssh into the machine.
Cloning private repositories in Google Colab using Personal Access Tokens:
There is no direct way of installing private repositories in Google Colab. As such, this method from Zenn Desk outlines how to do it using a Personal Access Token.
-
Open Settings > Developer Settings > Personal Access Tokens on Github Homepage or click link
-
Create a Personal Access Token with
repo
rights. -
Copy Personal Access Token and use it as a environment variable when cloning repos.
%env TOKEN=xxxxxxxxxxxxxxxxxxxx ! git clone https://$$TOKEN@github.com/username/reponame.git