git-fork
Create a remote, server-side repository fork
TLDR
Fork and clone a GitHub repository by its URL
Fork and clone a GitHub repository by its slug
SYNOPSIS
git fork [--no-remote] [--ssh] [--no-clone] [--login] [<user>/<repository> | <repository_url>] [<directory>]
The <user>/<repository> format is a common shorthand for repositories on platforms like GitHub. If <repository> is omitted, it attempts to infer it from the current working directory's remote. <directory> specifies the local folder name for the clone.
PARAMETERS
<user>/<repository> | <repository_url>
The target repository to fork. Can be specified as owner/repo (e.g., octocat/Spoon-Knife) or a full URL (e.g., https://github.com/octocat/Spoon-Knife.git).
<directory>
Optional. The local directory name to clone the forked repository into. If omitted, the repository name is used.
--no-remote
Prevents adding the original repository as an upstream remote after cloning.
--ssh
Uses the SSH protocol for cloning the repository instead of HTTPS.
--no-clone
Forks the repository on the remote platform but does not clone it to the local machine.
--login
Prompts for login credentials (e.g., GitHub username and password/token) to authenticate with the remote hosting service.
DESCRIPTION
The git-fork command is an external utility, commonly provided as part of the git-extras collection, designed to streamline the process of forking a remote Git repository, typically on platforms like GitHub. Instead of manually navigating to the platform, forking the repository, and then cloning the new fork, git-fork automates these steps.
When executed, it first attempts to create a fork of the specified repository under your account on the remote hosting service. Once the fork is successfully created, it then automatically clones your newly forked repository to your local machine. Furthermore, it often adds the original repository as a new remote, typically named upstream, allowing for easy synchronization and pulling changes from the original source. This command significantly simplifies the setup for collaborative development workflows, making it easier for contributors to work on projects by providing a dedicated, personal copy of the repository.
CAVEATS
The git-fork command is not a native Git command; it typically requires the git-extras package (or a similar external script) to be installed on your system. Its functionality is primarily geared towards and tested with Git hosting platforms like GitHub, and its behavior with other platforms (e.g., GitLab, Bitbucket) may vary or require specific configurations or plugins. For successful operation, proper authentication (e.g., via GitHub Personal Access Token or SSH keys) must be set up with your Git hosting provider.
DEPENDENCIES
This command relies on the git-extras package being installed on your system. Without it, git fork will not be recognized as a valid Git command.
PLATFORM SUPPORT
While conceptually applicable to any Git hosting service supporting forking, git-fork (as part of git-extras) is primarily optimized for and most reliably works with GitHub.
HISTORY
The git-fork command emerged as part of the broader git-extras project, a community-driven effort to extend Git's capabilities with frequently requested or workflow-enhancing commands. Its development reflects the increasing popularity of distributed version control systems and collaborative platforms like GitHub. It was created to address the common pattern of forking a repository, cloning the fork, and setting up an upstream remote, which previously involved multiple manual steps. By automating this sequence, git-fork significantly improved the onboarding experience for new contributors to open-source projects and streamlined the maintenance of personal forks.
SEE ALSO
git-clone(1), git-remote(1), git-extras(7), hub(1) (GitHub CLI tool, often used for similar workflows)