1 minute read

My colleague1 Veronika Kabátová wrote a great piece on setting up your environment to work with remote repositories. In it she outlines the strategy of letting your main branch point at the main code repository and have your other branches in your fork.

In her article, she describes how to edit your .git/config file to achieve this. I wanted to share some ways to do this without having to hand edit files. These commands assume you’re starting from the beginning and haven’t cloned or forked the repository yet.

1. Clone the Repository

git clone -o upstream <repository url>

The key part of this command is the extra option, -o upstream. This clones the repository but names the remote upstream. Now you can do things like git pull upstream to keep your main branch in sync.

2. Fork the Repo

Do whatever the git forge your using requires to create your fork. This may mean visiting a website and clicking a button. No matter what the process is, you should end up with a URL for your cloned repository. This is typically an SSH style URL.

Now, cd into the clone you made above and add your fork as a remote. We will call it origin in keeping with Veronika’s advice and what is typical practice.

git remote add origin <repository url>

This works for any git forge out there. If you’re using GitHub, and have installed their CLI client, you can simplify the commands above with:

gh repo clone <repository path> -- -o upstream
cd <repository>
gh repo fork --remote

Notice that we are passing the -o upstream git option when we do the clone. The gh repo fork command automatically creates the fork for you and with the --remote option automatically adds it named as origin.

Good luck and happy gitting.

  1. I love when I read something cool online and discover it is by a fellow Red Hatter I haven’t yet met in person!