Forking a Repository

Still need help?

The Atlassian Community is here for you.

Ask the community

In git and Mercurial, you create branches by starting with either the head/trunk or an existing branch. When you do this, your changes become part of the main project repository. If you want to work on a completely separate copy of the project, you may want to consider making a Fork. 

Forking is a way for you to clone a repository at a specific point, and to modify it from there. To fork is just another way of saying clone. Bitbucket Cloud manages the relationship between the original repository and the fork for you. Forking is particularly useful if you want to do some major development work that you may or may not later merge back into the repository.  Here is the basic workflow:
  • Create a fork on Bitbucket.
  • Clone the forked repository your local system.
  • Modify the local repository.
  • Commit your changes.
  • Push changes back to the remote fork on Bitbucket.
  • Create a pull request from the forked repository (source) back to the original (destination).

The final step in the workflow is for the owner of the original repository to merge your changes.

To fork a repository:

  1. From the repository, click + in the global sidebar and select Fork this repository under Get to work.
    The system displays the Fork dialog:
  2. Define options for your fork.

    Option Description
    Owner This defaults to the logged-in account. If you have the rights to create repos under more accounts (for example a team), this is a drop-down.
    Name Name of your fork. This defaults to the same name as the original repository.
    Description Explains the purpose of the fork.
    Access level By default, the system creates your fork with the same access level as the original. So, if the original is public your fork is too. You can change this, making your fork private. An administrator of the original repository can prevent public forks; In this case, then you cannot change the access.
    Permissions By default, your fork inherits the user/group permissions. For example, if 4 accounts have acces to the original your fork will give them the same access. Forking a public repo under your account can cause you to go over the limits on your Bitbucket plan. You can avoid the impact to your plan by making your fork private or by not inheriting the users from the original repo.
    Project Management Choose whether you want an issue tracker or wiki for your fork. By default, Bitbucket defaults to the same values as the original repo.
    Fork at Choose at what point in the code to fork the repository. This option is only available for Mercurial repositories that have one or more branches, tags, or revisions. This option is never available for Git repositories.
  3. Press Fork repository.
    The system creates the fork and opens the page to its Overview page.

After you fork a repository, the original repository is likely to evolve as other users commit changes to it. These changes do not appear in your fork automatically. To find out if your fork is missing commits, at the bottom of the Repository details card of your fork, you'll see a button with Sync (# commits behind). Click this button to pull these commits into your fork.

Last modified on Jun 20, 2018

Was this helpful?

Provide feedback about this article
Powered by Confluence and Scroll Viewport.