[Tutorial Git] fork: Como colaborar com projetos de código aberto

ダニエリ - Jul 12 '20 - - Dev Community

Primeiro é preciso que você tenha uma conta em alguma plataforma de hospedagem de código-fonte que faça uso do Git. Nesse exemplo, usaremos o Github.

Vá até o repositório desejado e procure pelo botão Fork.

botão fork

Ele começará o processo

fazendo fork

E em seguida você será redirecionada para sua conta e poderá notar abaixo do nome do repositório, a origem desse

fork deu certo

Agora precisamos trazer o repositório para a nossa máquina.

No repositório, procure pelo botão clone or download.

clone or download

Copie o link e digite no terminal:

$ git clone link_do_repositorio
Enter fullscreen mode Exit fullscreen mode
  • $ indica que você deve usar o usuário comum para fazer essa operação.

No meu caso, será:

$ git clone git@github.com:danielle8farias/challenges-algorithms.git
Enter fullscreen mode Exit fullscreen mode

Recomenda-se (boas práticas) criar um branch para manter as suas alterações separadas

$ git checkout -b nome_do_novo_branch
Enter fullscreen mode Exit fullscreen mode

Agora você pode alterar o projeto sem qualquer dano ao repositório original.

Depois de feitas todas as alterações necessárias e commits, você provavelmente desejará enviá-las para o seu repositório remoto e para repositório original (já que a sua ideia é contribuir).

Primeiro precisamos verificar nosso repositório remoto

$ git remote -v
Enter fullscreen mode Exit fullscreen mode

Se ele retornar apenas seus repositório, desse modo:

origin  git@github.com:danielle8farias/challenges-algorithms.git (fetch)
origin  git@github.com:danielle8farias/challenges-algorithms.git (push)
Enter fullscreen mode Exit fullscreen mode

Então é preciso adicionar a ligação com o repositório original. Assim:

$ git remote add upstream url_do_repositorio_remoto_original
Enter fullscreen mode Exit fullscreen mode

No meu caso,

$ git remote add upstream git@github.com:WoMakersCode/challenges-algorithms.git
Enter fullscreen mode Exit fullscreen mode

Verificando novamente o repositório remoto

$ git remote -v
Enter fullscreen mode Exit fullscreen mode

temos o retorno algo parecido com

origin  git@github.com:danielle8farias/challenges-algorithms.git (fetch)
origin  git@github.com:danielle8farias/challenges-algorithms.git (push)
upstream    git@github.com:WoMakersCode/challenges-algorithms.git (fetch)
upstream    git@github.com:WoMakersCode/challenges-algorithms.git (push)
Enter fullscreen mode Exit fullscreen mode

Agora, antes de empurrar seu código, é uma boa prática ir até a página do repositório que você está colaborando e clicar na parte de issues para criar um tópico novo (new issue), descrevendo sobre a sua colaboração, quais problemas você pretende solucionar, etc. Ou indo em um tópico já criado para ajudar a solucioná-lo.

issues

Agora, empurre seu código para o seu fork através do comando

$ git push origin nome_do_branch
Enter fullscreen mode Exit fullscreen mode

Feito isso, vá até o seu repositório no Github e perceba que apareceu algo novo:

compare & pull request

Clique sobre ele e abrirá uma nova tela:

criando pull request

Escreva sua mensagem e clique em create pull request.

A mensagem de retorno será algo como

Sucesso

Caso deseje baixar as alterações de um repositório ao qual você fez o fork, clone ou contribuiu, digite:

$ git pull upstream master
Enter fullscreen mode Exit fullscreen mode
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .