How to fork a Git repository

Fork a Git or GitHub repository

There is no fork command in Git.

This comes as a surprise to many, as a repository fork is a broadly understood concept. But it’s not a function that Git provides.

How to fork a Git repo

A Git fork is nothing more than a copy of an existing repository, along with a change to the name of the folder in which that repository resides. The change to the folder name creates a new Git URL, which makes the new repository immune from updates by developers who use the old URL to contribute to the code base. That’s it. That’s all you need to do to fork a Git repository.

Things get a little more complicated when the target of a fork is a cloud-based hosting service like GitHub or GitLab, as you may not have access to the file system of a SaaS provider, and a folder level copy and paste isn’t possible.

To address this, every public repository on GitHub or GitLab has a fork button which allows a user to copy the files associated with a Git repository to their local account. So, there is still no Git fork command, but SaaS providers, who offer value by going beyond what the basic Git tool provides, make it possible to fork a repository with a simple click of the button.

Your intro to GitHub Actions training course

Here’s how to get started with GitHub Actions:

Follow these tutorials and you’ll learn GitHub Actions fast.

Git fork commands

There is also a GitHub CLI tool you can install to do a GitHub command line fork, but again, this is a special function provided by a third party, it is not a feature native to Git itself.

git fork command

GitHub provides command line tools to help you fork a Git repository.

There is no such thing as a git fork command. But that doesn’t mean you can’t fork a git repository. Just make a copy of it. Or use the fork button provided by a cloud-based Git provider. The end result is the same, and you don’t have to learn a new Git command to do it.

The Git fork command will copy a repo and in theory, detach the fork from the original. A clone makes a copy that remains linked to the original Git repository.