Git Clone Commands
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 git
ting.
-
I love when I read something cool online and discover it is by a fellow Red Hatter I haven’t yet met in person! ↩