DEV Community

Gabriel (Gabu) Bellon
Gabriel (Gabu) Bellon

Posted on • Originally published at gabubellon.me on

Apontar uma branch de um fork para a branch principal do repo original

Fork sempre atualizado !

Uma pequena dica para quando trabalhar com forks de repositórios e apontar branch principal do seu fork (ou qualquer outra) para a branch principal do repositório original.

Isso ajuda a manter seu código no fork sempre na versão mais atualizada do repositório original, permitindo que suas customizações e merges sejam mais práticos

Configurando os remotes

Após realizar o fork de um repositório e o clone para sua máquina local, você pode executar em um terminal o comando git remote -v, o mesmo ira retornar para quais remotes o repositório está apontando.

Inicialmente temos apenas o remote do nosso fork:

$ git remote -v
> origin    git@github.com:<your_git_account>/<repo>.git (fetch)
> origin    git@github.com:<your_git_account>/<repo>.git (push)

Com o comando git remote add podemos incluir um novo remote, no caso vamos adicionar o repositório original, mas poderiamos adicionar qualquer outro fork, ou apontas para nosso fork para vários serviços git ao mesmo tempo.Ao executarmos a adição e na sequência um git remote -v agora vemos que o nosso fork tem mais de um remote configurado.

$ git remote add upstream git@github.com:<origin_account>/<repo>.git
$ git remote -v
> origin    git@github.com:<your_git_account>/<repo>.git (fetch)
> origin    git@github.com:<your_git_account>/<repo>.git (push)
> upstream  git@github.com:<original_git_account>/<repo>.git (fetch)
> upstream  git@github.com:<original_git_account>/<repo>.git (push) 

Executamos um fetch para trazer todas as branchs de todos os remotes para nosso fork

git fetch upstream

Branchs atualizadas !

Agora podemos apontar a branch principal do nosso fork para o repositório original. Primeiro criamos uma branch temporária e movemos para ela:

git checkout -b tmp

Na sequência apagamos a branch principal do nosso fork:

git branch -D <main_branch_fork>

Logo após criamos novamente uma branch com o mesmo nome no nosso fork, mas apontando para a branch principal do repositório original:

git checkout upstream/<main_origin_repo> -b <main_branch_fork>

Pra finalizar excluimos a branch temporária

git branch -D tmp

Ou se preferir apenas criar uma nova branch no seu fork, mantendo a sua principal, basta criar uma nova branch:

git checkout upstream/<main_origin_repo> -b <new_branch_name>

Com isso agora podemos sempre executar um git pull <new_branch_name> ou <main_branch_fork> e teremos em nosso fork o código do repositório original atualizado.

Para mais detalhes a documentação do GitHub pode ajudar.

Sentry image

See why 4M developers consider Sentry, “not bad.”

Fixing code doesn’t have to be the worst part of your day. Learn how Sentry can help.

Learn more

Top comments (0)

A Workflow Copilot. Tailored to You.

Pieces.app image

Our desktop app, with its intelligent copilot, streamlines coding by generating snippets, extracting code from screenshots, and accelerating problem-solving.

Read the docs