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.
Top comments (0)