# Criar fork de um repositório

Faça um fork de um repositório em GitHub para propor alterações, colaborar em projetos e gerenciar sua própria cópia do código-fonte.

## Sobre bifurcações

Fazer um fork de um repositório permite que você proponha alterações em um projeto sem afetar o repositório original. Consulte [Sobre bifurcações](/pt/pull-requests/get-started/about-forks).

## Pré-requisitos

Se ainda não o fez, configure o Git e a autenticação com GitHub.com a partir do Git. Consulte [Configurar o git](/pt/get-started/git-basics/set-up-git).

## Bifurcar um repositório

<div class="ghd-tool webui">

Você pode realizar um fork de um projeto para propor alterações no repositório upstream. Nesse caso, é uma boa prática sincronizar seu fork com o repositório original regularmente. Para isso, é necessário usar Git na linha de comando. Você pode praticar a configuração do repositório upstream usando o mesmo repositório [octocat/Spoon-Knife](https://github.com/octocat/Spoon-Knife) do qual acabou de criar um fork.

1. Em GitHub, navegue até o repositório [octocat/Spoon-Knife](https://github.com/octocat/Spoon-Knife).
2. No canto superior direito da página, clique em **Fork**.

   ![Captura de tela da página principal de um repositório. Um botão, rotulado com um ícone de fork e "Fork 59.3k", está contornado em laranja escuro.](/assets/images/help/repository/fork-button.png)
3. Em "Proprietário", selecione o menu suspenso e clique em um proprietário do repositório com fork.
4. Por padrão, os forks são nomeados da mesma forma que os repositórios upstream. Opcionalmente, no campo "Nome do repositório", digite um nome diferente para distinguir seu fork.
5. Opcionalmente, no campo "Descrição", digite uma descrição do fork.
6. Opcionalmente, selecione **Copiar somente o branch PADRÃO**.

   Em muitos cenários de bifurcação, como contribuir para projetos de código aberto, você só precisa copiar o ramo padrão. Se você não selecionar essa opção, todos os branches serão copiados para o novo fork.
7. Clique em **Criar bifurcação**.

> \[!NOTE]
> Se você quiser copiar branches adicionais do repositório upstream, poderá fazê-lo na página **Branches**. Consulte [Managing branches within your repository](/pt/pull-requests/how-tos/commit-changes/managing-branches-within-your-repository).

</div>

<div class="ghd-tool cli">

> \[!NOTE]
> Para saber mais sobre GitHub CLI, confira [Sobre GitHub CLI](/pt/github-cli/github-cli/about-github-cli).

Para criar um fork de um repositório, use o subcomando `gh repo fork`.

```shell
gh repo fork REPOSITORY
```

Para criar o fork em uma organização, use o sinalizador `--org`.

```shell
gh repo fork REPOSITORY --org "octo-org"
```

</div>

<div class="ghd-tool desktop">

Você pode bifurcar um repositório em GitHub.com ou em GitHub Desktop. Para obter informações sobre como fazer um fork em GitHub.com, consulte [a versão web deste artigo](/pt/pull-requests/how-tos/work-with-forks/fork-a-repo?tool=webui).

No GitHub Desktop, se você clonar um repositório ao qual não tem acesso de gravação e, em seguida, tentar efetuar push de uma alteração para o repositório, um fork será criado para você.

1. No menu **Arquivo**, clique em **Clonar Repositório**.

   <div class="ghd-tool mac">

   ![Captura de tela da barra de menus no Mac. O menu suspenso "Arquivo" é expandido e a opção "Clonar Repositório" está realçada com um contorno laranja.](/assets/images/help/desktop/clone-file-menu-mac.png)

   </div>

   <div class="ghd-tool windows">

   ![Captura de tela da barra de menus "GitHub Desktop" no Windows. O menu suspenso "File" é expandido, e a opção "Clone Repository" está contornada em laranja.](/assets/images/help/desktop/clone-file-menu-windows.png)

   </div>

2. Clique na aba que corresponde à localização do repositório que você deseja clonar. Neste exemplo, clicamos na guia URL.

   ![Captura de tela da guia "URL" da janela "Clone a repository". As guias "GitHub.com", "GitHub Enterprise" e "URL" estão contornadas em laranja escuro.](/assets/images/help/desktop/choose-repository-location-url-tab-windows.png)

3. Insira a URL ou o caminho do repositório que deseja clonar.

   ![Captura de tela da guia "URL" da janela "Clone a repository". A entrada que contém "octocat/Spoon-Knife" está realçada com um contorno laranja.](/assets/images/help/desktop/clone-a-repository-url-tab-name-input.png)

4. Para selecionar o diretório local no qual você deseja clonar o repositório, ao lado do campo "Caminho Local", clique em **Escolher...** e navegue até o diretório.

   ![Captura de tela da guia "URL" da janela "Clonar um repositório". O botão, rotulado como "Escolher", está realçado com um contorno laranja.](/assets/images/help/desktop/clone-choose-button-url-windows.png)

5. Na parte inferior da janela "Clonar um Repositório", clique em **Clonar**.

6. Para criar um fork, tente efetuar push de uma alteração para o repositório. Em seguida, crie um branch e publique-o. Um prompt será exibido perguntando se você deseja criar fork desse repositório.

   ![Captura de tela da janela "Create a fork prompt". Um botão, rotulado como "Fork this repository", está realçado com um contorno laranja.](/assets/images/help/desktop/create-fork-button-windows.png)

7. Leia as informações em "Como você está planejando usar essa bifurcação?" .
   * Se você pretende usar esse fork para contribuir com o repositório upstream original, clique em **Para contribuir com o projeto pai**.
   * Se você pretende usar esse fork para um projeto não conectado ao upstream, clique em **Para minhas próprias finalidades**.

8. Clique em **Continuar**.

</div>

<div class="ghd-tool webui">

## Clonando o seu repositório bifurcado

Agora você tem um fork do repositório Spoon-Knife, mas não tem os arquivos desse repositório no seu computador.

1. Em GitHub, acesse **seu fork** do repositório Spoon-Knife.

2. Acima da lista de arquivos, clique em **<svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-code" aria-label="code" role="img"><path d="m11.28 3.22 4.25 4.25a.75.75 0 0 1 0 1.06l-4.25 4.25a.749.749 0 0 1-1.275-.326.749.749 0 0 1 .215-.734L13.94 8l-3.72-3.72a.749.749 0 0 1 .326-1.275.749.749 0 0 1 .734.215Zm-6.56 0a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042L2.06 8l3.72 3.72a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215L.47 8.53a.75.75 0 0 1 0-1.06Z"></path></svg> Code**.

   ![Captura de tela da lista de arquivos na página de aterrissagem de um repositório. O botão "Código" está realçado com um contorno laranja escuro.](/assets/images/help/repository/code-button.png)

3. Copie a URL do repositório.

   * Para clonar o repositório usando HTTPS, em "HTTPS", clique em <svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-copy" aria-label="Copy to clipboard" role="img"><path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 0 1 0 1.5h-1.5a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-1.5a.75.75 0 0 1 1.5 0v1.5A1.75 1.75 0 0 1 9.25 16h-7.5A1.75 1.75 0 0 1 0 14.25Z"></path><path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0 1 14.25 11h-7.5A1.75 1.75 0 0 1 5 9.25Zm1.75-.25a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-7.5a.25.25 0 0 0-.25-.25Z"></path></svg>.
   * Para clonar o repositório usando uma chave SSH, incluindo um certificado emitido pela autoridade de certificação SSH da sua organização, clique em **SSH** e em <svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-copy" aria-label="Copy to clipboard" role="img"><path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 0 1 0 1.5h-1.5a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-1.5a.75.75 0 0 1 1.5 0v1.5A1.75 1.75 0 0 1 9.25 16h-7.5A1.75 1.75 0 0 1 0 14.25Z"></path><path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0 1 14.25 11h-7.5A1.75 1.75 0 0 1 5 9.25Zm1.75-.25a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-7.5a.25.25 0 0 0-.25-.25Z"></path></svg>.
   * Para clonar um repositório usando a GitHub CLI, clique em **GitHub CLI** e em <svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-copy" aria-label="Copy to clipboard" role="img"><path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 0 1 0 1.5h-1.5a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-1.5a.75.75 0 0 1 1.5 0v1.5A1.75 1.75 0 0 1 9.25 16h-7.5A1.75 1.75 0 0 1 0 14.25Z"></path><path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0 1 14.25 11h-7.5A1.75 1.75 0 0 1 5 9.25Zm1.75-.25a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-7.5a.25.25 0 0 0-.25-.25Z"></path></svg>.

     ![Captura de tela do menu suspenso "Código". À direita da URL HTTPS do repositório, um ícone de cópia está contornado em laranja escuro.](/assets/images/help/repository/https-url-clone-cli.png)

4. Abra o terminal ou o Git Bash.

5. Altere o diretório de trabalho atual para o local em que deseja ter o diretório clonado.

6. Digite `git clone`e cole a URL copiada anteriormente. Ele terá esta aparência, com seu GitHub nome de usuário em vez de `YOUR-USERNAME`:

   ```shell
   git clone https://github.com/YOUR-USERNAME/Spoon-Knife
   ```

7. Pressione **Enter**. O Git cria o clone local.

   ```shell
   $ git clone https://github.com/YOUR-USERNAME/Spoon-Knife
   > Cloning into `Spoon-Knife`...
   > remote: Counting objects: 10, done.
   > remote: Compressing objects: 100% (8/8), done.
   > remote: Total 10 (delta 1), reused 10 (delta 1)
   > Unpacking objects: 100% (10/10), done.
   ```

</div>

<div class="ghd-tool cli">

## Clonando o seu repositório bifurcado

Agora você tem um fork do repositório Spoon-Knife, mas não tem os arquivos desse repositório no seu computador.

> \[!NOTE]
> Para saber mais sobre GitHub CLI, confira [Sobre GitHub CLI](/pt/github-cli/github-cli/about-github-cli).

Para criar um clone do fork, use o sinalizador `--clone`.

```shell
gh repo fork REPOSITORY --clone=true
```

</div>

## Configurar o Git para sincronizar o fork com o repositório upstream

Ao fazer um fork de um projeto para propor alterações ao repositório upstream, você pode configurar o Git para buscar alterações do repositório upstream para o clone local do seu fork.

<div class="ghd-tool webui">

1. Em GitHub, navegue até o repositório [octocat/Spoon-Knife](https://github.com/octocat/Spoon-Knife).

2. Acima da lista de arquivos, clique em **<svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-code" aria-label="code" role="img"><path d="m11.28 3.22 4.25 4.25a.75.75 0 0 1 0 1.06l-4.25 4.25a.749.749 0 0 1-1.275-.326.749.749 0 0 1 .215-.734L13.94 8l-3.72-3.72a.749.749 0 0 1 .326-1.275.749.749 0 0 1 .734.215Zm-6.56 0a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042L2.06 8l3.72 3.72a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215L.47 8.53a.75.75 0 0 1 0-1.06Z"></path></svg> Code**.

   ![Captura de tela da lista de arquivos na página de aterrissagem de um repositório. O botão "Código" está realçado com um contorno laranja escuro.](/assets/images/help/repository/code-button.png)

3. Copie a URL do repositório.

   * Para clonar o repositório usando HTTPS, em "HTTPS", clique em <svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-copy" aria-label="Copy to clipboard" role="img"><path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 0 1 0 1.5h-1.5a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-1.5a.75.75 0 0 1 1.5 0v1.5A1.75 1.75 0 0 1 9.25 16h-7.5A1.75 1.75 0 0 1 0 14.25Z"></path><path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0 1 14.25 11h-7.5A1.75 1.75 0 0 1 5 9.25Zm1.75-.25a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-7.5a.25.25 0 0 0-.25-.25Z"></path></svg>.
   * Para clonar o repositório usando uma chave SSH, incluindo um certificado emitido pela autoridade de certificação SSH da sua organização, clique em **SSH** e em <svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-copy" aria-label="Copy to clipboard" role="img"><path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 0 1 0 1.5h-1.5a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-1.5a.75.75 0 0 1 1.5 0v1.5A1.75 1.75 0 0 1 9.25 16h-7.5A1.75 1.75 0 0 1 0 14.25Z"></path><path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0 1 14.25 11h-7.5A1.75 1.75 0 0 1 5 9.25Zm1.75-.25a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-7.5a.25.25 0 0 0-.25-.25Z"></path></svg>.
   * Para clonar um repositório usando a GitHub CLI, clique em **GitHub CLI** e em <svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-copy" aria-label="Copy to clipboard" role="img"><path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 0 1 0 1.5h-1.5a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-1.5a.75.75 0 0 1 1.5 0v1.5A1.75 1.75 0 0 1 9.25 16h-7.5A1.75 1.75 0 0 1 0 14.25Z"></path><path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0 1 14.25 11h-7.5A1.75 1.75 0 0 1 5 9.25Zm1.75-.25a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-7.5a.25.25 0 0 0-.25-.25Z"></path></svg>.

     ![Captura de tela do menu suspenso "Código". À direita da URL HTTPS do repositório, um ícone de cópia está contornado em laranja escuro.](/assets/images/help/repository/https-url-clone-cli.png)

4. Abra o terminal ou o Git Bash.

5. Mude para o diretório do fork que você clonou.
   * Para acessar o diretório base, digite apenas `cd` sem nenhum outro texto.
   * Para listar os arquivos e as pastas do diretório atual, digite `ls`.
   * Para entrar em um dos diretórios listados, digite `cd YOUR-LISTED-DIRECTORY`.
   * Para subir um diretório, digite `cd ..`.

6. Digite `git remote -v` e pressione **Enter**. Você verá o repositório remoto atualmente configurado para o seu fork.

   ```shell
   $ git remote -v
   > origin  https://github.com/YOUR-USERNAME/YOUR-FORK.git (fetch)
   > origin  https://github.com/YOUR-USERNAME/YOUR-FORK.git (push)
   ```

7. Digite `git remote add upstream`e cole a URL copiada na Etapa 3 e pressione **Enter**. Ele terá a seguinte aparência:

   ```shell
   git remote add upstream https://github.com/ORIGINAL-OWNER/Spoon-Knife.git
   ```

8. Para verificar o novo repositório upstream especificado para sua bifurcação, digite `git remote -v` novamente. Você deve ver a URL do seu fork como `origin` e a URL do repositório upstream como `upstream`.

   ```shell
   $ git remote -v
   > origin    https://github.com/YOUR-USERNAME/YOUR-FORK.git (fetch)
   > origin    https://github.com/YOUR-USERNAME/YOUR-FORK.git (push)
   > upstream  https://github.com/ORIGINAL-OWNER/ORIGINAL-REPOSITORY.git (fetch)
   > upstream  https://github.com/ORIGINAL-OWNER/ORIGINAL-REPOSITORY.git (push)
   ```

Agora você pode manter seu fork sincronizado com o repositório upstream com alguns comandos Git. Consulte [Syncing a fork](/pt/pull-requests/how-tos/work-with-forks/syncing-a-fork).

</div>

<div class="ghd-tool cli">

> \[!NOTE]
> Para saber mais sobre GitHub CLI, confira [Sobre GitHub CLI](/pt/github-cli/github-cli/about-github-cli).

Para configurar um repositório remoto para o repositório com fork, use o sinalizador `--remote`.

```shell
gh repo fork REPOSITORY --remote=true
```

Para especificar o nome do repositório remoto, use o sinalizador `--remote-name`.

```shell
gh repo fork REPOSITORY --remote-name "main-remote-repo"
```

</div>

### Editando uma bifurcação

Você pode fazer alterações em uma bifurcação, incluindo:

* **Como criar branches:** os [*branches*](/pt/pull-requests/how-tos/commit-changes/managing-branches-within-your-repository) permitem que você crie recursos ou teste ideias sem colocar seu projeto principal em risco.
* **Abrindo pull requests:** se você quiser contribuir com o repositório original, pode enviar um pull request para pedir ao autor original que incorpore seu fork ao repositório dele. Consulte [Creating a pull request from a fork](/pt/pull-requests/how-tos/create-pull-requests/creating-a-pull-request-from-a-fork).

## Localize outro repositório para bifurcar

Faça um fork de um repositório para começar a contribuir em um projeto.
Você pode bifurcar qualquer repositório público:

* Para sua conta pessoal
* Para uma organização em que você tem permissão para criar repositórios

Se você tiver acesso a um repositório privado e o proprietário permitir bifurcação, você poderá bifurcar o repositório:

* Para sua conta pessoal
* Para uma organização no GitHub Team em que você tem permissão para criar repositórios

Não é possível criar forks de um repositório privado em uma organização que usa o GitHub Free. Para obter mais informações sobre GitHub Team e GitHub Free, confira [Planos do GitHub](/pt/get-started/learning-about-github/githubs-plans).

Para obter mais informações sobre quando você pode bifurcar um repositório, consulte [Garfos](/pt/pull-requests/reference/forks).

Você pode procurar [Explorar GitHub](https://github.com/explore) para encontrar projetos e começar a contribuir para código aberto repositórios. Consulte [Encontrar maneiras de contribuir para open source no GitHub](/pt/get-started/exploring-projects-on-github/finding-ways-to-contribute-to-open-source-on-github).

## Próximas Etapas 

Você já bifurcou um repositório, treinou clonar sua bifurcação e configurou um repositório upstream.

* Para obter mais informações sobre como usar o Git na linha de comando para clonar e sincronizar alterações, consulte [Configurar o git](/pt/get-started/git-basics/set-up-git).

* Você também pode criar um novo repositório para armazenar seus projetos e compartilhar o código.GitHub A criação de um repositório para seu projeto permite que você armazene código no GitHub. Isso fornece um backup do seu trabalho que você pode optar por compartilhar com outros desenvolvedores. Para saber mais, confira [Guia de início rápido para repositórios](/pt/repositories/creating-and-managing-repositories/quickstart-for-repositories).

* Cada repositório em GitHub pertence a uma pessoa ou a uma organização. Você pode interagir com as pessoas, repositórios e organizações conectando-se e seguindo-as.GitHub Para saber mais, confira [Descobrindo projetos no GitHub](/pt/get-started/exploring-projects-on-github/discovering-projects-on-github).

* O GitHub tem uma ótima comunidade de suporte na qual você pode pedir ajuda e conversar com pessoas de todo o mundo. Participe da conversa na [GitHub Community](https://github.com/orgs/community/discussions).